|
2 | 2 |
|
3 | 3 | import com.github.kklisura.cdtp.definition.builder.protocol.types.Command; |
4 | 4 | import com.github.kklisura.cdtp.definition.builder.protocol.types.Domain; |
| 5 | +import com.github.kklisura.cdtp.definition.builder.protocol.types.Event; |
5 | 6 | import com.github.kklisura.cdtp.definition.builder.protocol.types.type.object.ObjectType; |
6 | 7 | import com.github.kklisura.cdtp.definition.builder.protocol.types.type.object.Property; |
7 | 8 | import com.github.kklisura.cdtp.definition.builder.protocol.types.type.object.properties.ArrayProperty; |
@@ -332,7 +333,7 @@ public void testBuildCommandWithMethodWithComplexReturnParams() { |
332 | 333 | numberParam.setExperimental(Boolean.TRUE); |
333 | 334 |
|
334 | 335 | command.setReturns(Arrays.asList(stringParam, numberParam)); |
335 | | - domain.setCommands(Arrays.asList(command)); |
| 336 | + domain.setCommands(Collections.singletonList(command)); |
336 | 337 |
|
337 | 338 | expect(javaBuilderFactory.createClassBuilder(TYPE_PACKAGE_NAME + ".domainname", "CommandSomeResult")) |
338 | 339 | .andReturn(javaClassBuilder); |
@@ -371,6 +372,67 @@ public void testBuildCommandWithMethodWithComplexReturnParams() { |
371 | 372 | assertTrue(methodParamCapture.getValue().isEmpty()); |
372 | 373 | } |
373 | 374 |
|
| 375 | + @Test |
| 376 | + public void testBuildCommandWithEvents() { |
| 377 | + final Domain domain = new Domain(); |
| 378 | + domain.setDomain("domainName"); |
| 379 | + domain.setDescription("Description"); |
| 380 | + |
| 381 | + final Event event = new Event(); |
| 382 | + event.setName("someEvent"); |
| 383 | + event.setDescription("event description"); |
| 384 | + |
| 385 | + final Event event1 = new Event(); |
| 386 | + event1.setName("someEvent1"); |
| 387 | + event1.setDescription("event description"); |
| 388 | + event1.setDeprecated(Boolean.TRUE); |
| 389 | + event1.setExperimental(Boolean.TRUE); |
| 390 | + |
| 391 | + domain.setEvents(Arrays.asList(event, event1)); |
| 392 | + |
| 393 | + expect(javaBuilderFactory.createInterfaceBuilder(BASE_PACKAGE_NAME, "DomainName")) |
| 394 | + .andReturn(interfaceBuilder); |
| 395 | + interfaceBuilder.setJavaDoc("Description"); |
| 396 | + |
| 397 | + interfaceBuilder.addImport("com.github.kklisura.support.types", "EventListener"); |
| 398 | + interfaceBuilder.addImport("com.github.kklisura.support.types", "EventHandler"); |
| 399 | + interfaceBuilder.addImport("com.github.kklisura.events.domainname", "SomeEvent"); |
| 400 | + |
| 401 | + interfaceBuilder.addImport("com.github.kklisura.support.types", "EventListener"); |
| 402 | + interfaceBuilder.addImport("com.github.kklisura.support.types", "EventHandler"); |
| 403 | + interfaceBuilder.addImport("com.github.kklisura.events.domainname", "SomeEvent1"); |
| 404 | + |
| 405 | + Capture<List<MethodParam>> methodParamCapture = Capture.newInstance(); |
| 406 | + interfaceBuilder.addMethod(eq("onSomeEvent"), eq("event description"), capture(methodParamCapture), eq("EventListener")); |
| 407 | + |
| 408 | + Capture<List<MethodParam>> methodParamCapture1 = Capture.newInstance(); |
| 409 | + interfaceBuilder.addMethod(eq("onSomeEvent1"), eq("event description"), capture(methodParamCapture1), eq("EventListener")); |
| 410 | + |
| 411 | + interfaceBuilder.addParametrizedMethodAnnotation("onSomeEvent", "EventName", "someEvent"); |
| 412 | + interfaceBuilder.addParametrizedMethodAnnotation("onSomeEvent1", "EventName", "someEvent1"); |
| 413 | + |
| 414 | + interfaceBuilder.addMethodAnnotation("onSomeEvent1", "Deprecated"); |
| 415 | + interfaceBuilder.addMethodAnnotation("onSomeEvent1", "Experimental"); |
| 416 | + |
| 417 | + replayAll(); |
| 418 | + |
| 419 | + Builder build = commandBuilder.build(domain, resolver); |
| 420 | + |
| 421 | + verifyAll(); |
| 422 | + |
| 423 | + assertEquals(interfaceBuilder, build); |
| 424 | + |
| 425 | + List<MethodParam> value = methodParamCapture.getValue(); |
| 426 | + assertEquals(1, value.size()); |
| 427 | + assertEquals("eventListener", value.get(0).getName()); |
| 428 | + assertEquals("EventHandler<SomeEvent>", value.get(0).getType()); |
| 429 | + |
| 430 | + List<MethodParam> value1 = methodParamCapture1.getValue(); |
| 431 | + assertEquals(1, value1.size()); |
| 432 | + assertEquals("eventListener", value1.get(0).getName()); |
| 433 | + assertEquals("EventHandler<SomeEvent1>", value1.get(0).getType()); |
| 434 | + } |
| 435 | + |
374 | 436 | private <T extends Property> T createProperty(Class<T> clazz, String name) |
375 | 437 | throws IllegalAccessException, InstantiationException { |
376 | 438 | T property = clazz.newInstance(); |
|
0 commit comments