@Test public void taskCompositeCommandCanBeSerialized() throws Exception { Assume.assumeTrue(TestType.JAXB.equals(getType())); addClassesToSerializationContext(CompositeCommand.class); addClassesToSerializationContext(StartTaskCommand.class); addClassesToSerializationContext(CancelDeadlineCommand.class); CompositeCommand<Void> cmd = new CompositeCommand<Void>(new StartTaskCommand(1, "john"), new CancelDeadlineCommand(1, true, false)); CompositeCommand<?> returned = testRoundTrip(cmd); assertNotNull(returned); assertNotNull(returned.getMainCommand()); assertTrue(returned.getMainCommand() instanceof StartTaskCommand); assertEquals(Long.valueOf(1), returned.getTaskId()); assertNotNull(returned.getCommands()); assertEquals(1, returned.getCommands().size()); }
@Test public void taskCompositeCommandMultipleCanBeSerialized() throws Exception { Assume.assumeTrue(TestType.JAXB.equals(getType())); addClassesToSerializationContext(CompositeCommand.class); addClassesToSerializationContext(SkipTaskCommand.class); addClassesToSerializationContext(ProcessSubTaskCommand.class); addClassesToSerializationContext(CancelDeadlineCommand.class); CompositeCommand<Void> cmd = new CompositeCommand<Void>(new SkipTaskCommand(1, "john"), new ProcessSubTaskCommand(1, "john"), new CancelDeadlineCommand(1, true, true)); CompositeCommand<?> returned = testRoundTrip(cmd); assertNotNull(returned); assertNotNull(returned.getMainCommand()); assertTrue(returned.getMainCommand() instanceof SkipTaskCommand); assertEquals(Long.valueOf(1), returned.getTaskId()); assertNotNull(returned.getCommands()); assertEquals(2, returned.getCommands().size()); }
protected String getUserId(Command<?> command) { if (command instanceof CompositeCommand) { CompositeCommand<?> compCmd = (CompositeCommand<?>) command; String userId = getUserId(compCmd.getMainCommand()); if (userId != null) { return userId; } for (Command<?> cmd : compCmd.getCommands()) { userId = getUserId(cmd); if (userId != null) { return userId; } } } if (command instanceof TaskCommand) { return ((TaskCommand<?>) command).getUserId(); } return null; }