File tree Expand file tree Collapse file tree 3 files changed +32
-0
lines changed
main/java/pl/mperor/lab/java/design/pattern/behavioral/interpreter
test/java/pl/mperor/lab/java/design/pattern/behavioral/interpreter Expand file tree Collapse file tree 3 files changed +32
-0
lines changed Original file line number Diff line number Diff line change @@ -12,6 +12,7 @@ with practical examples and best practices for using design patterns to create r
1212- [ Chain of Responsibility] ( src/main/java/pl/mperor/lab/java/design/pattern/behavioral/chain/of/responsibility ) 🔗
1313- [ Command] ( src/main/java/pl/mperor/lab/java/design/pattern/behavioral/command ) 📝
1414- [ Execute Around Method (EAM)] ( src/main/java/pl/mperor/lab/java/design/pattern/behavioral/eam ) ⭕
15+ - [ Interpreter] ( src/main/java/pl/mperor/lab/java/design/pattern/behavioral/interpreter ) 📰
1516- [ Mediator] ( src/main/java/pl/mperor/lab/java/design/pattern/behavioral/mediator ) 🗣️
1617- [ Memento] ( src/main/java/pl/mperor/lab/java/design/pattern/behavioral/memento ) 💾
1718- [ Observer] ( src/main/java/pl/mperor/lab/java/design/pattern/behavioral/observer ) 👀
Original file line number Diff line number Diff line change 1+ package pl .mperor .lab .java .design .pattern .behavioral .interpreter ;
2+
3+ @ FunctionalInterface
4+ interface CommandInterpreter {
5+
6+ String interpret (String source );
7+ }
Original file line number Diff line number Diff line change 1+ package pl .mperor .lab .java .design .pattern .behavioral .interpreter ;
2+
3+ import org .junit .jupiter .api .Assertions ;
4+ import org .junit .jupiter .api .Test ;
5+
6+ import java .util .HashMap ;
7+ import java .util .Map ;
8+
9+ public class CommandInterpreterTest {
10+
11+ @ Test
12+ public void testCommandInterpreter () {
13+ Map <String , CommandInterpreter > commands = new HashMap <>();
14+ commands .put ("/welcome" , name -> "👋 Welcome " + name + "!" );
15+ commands .put ("/shout" , message -> "❗" + message .toUpperCase ());
16+
17+ Assertions .assertEquals ("👋 Welcome Alice 👱♀️!" ,
18+ commands .get ("/welcome" ).interpret ("Alice 👱♀️" )
19+ );
20+ Assertions .assertEquals ("❗ARE U READY?" ,
21+ commands .get ("/shout" ).interpret ("Are u ready?" )
22+ );
23+ }
24+ }
You can’t perform that action at this time.
0 commit comments