### Question:
Workflow implements Serializable { public Workflow( final String messageKey, final Principal owner ) { m_attributes = new ConcurrentHashMap<>(); m_currentStep = null; m_history = new LinkedList<>(); m_id = idsCounter.getAndIncrement(); m_key = messageKey; m_messageArgs = new ArrayList<>(); m_owner = owner; m_started = false; m_state = CREATED; WikiEventEmitter.fireWorkflowEvent( this, WorkflowEvent.CREATED ); } Workflow( final String messageKey, final Principal owner ); final synchronized void abort( final Context context ); final void addMessageArgument( final Serializable obj ); final synchronized Principal getCurrentActor(); final int getCurrentState(); final Step getCurrentStep(); final Object getAttribute( final String attr ); final Map< String, Serializable > getAttributes(); final Date getEndTime(); final synchronized int getId(); final Serializable[] getMessageArguments(); final String getMessageKey(); final Principal getOwner(); final Date getStartTime(); final List< Step > getHistory(); final boolean isAborted(); final synchronized boolean isCompleted(); final boolean isStarted(); final Step getPreviousStep(); final synchronized void restart( final Context context ); final void setAttribute( final String attr, final Serializable obj ); final synchronized void setFirstStep( final Step step ); final synchronized void setId( final int id ); final synchronized void start( final Context context ); final synchronized void waitstate(); static final int ID_NOT_SET; static final int COMPLETED; static final int ABORTED; static final int WAITING; static final int RUNNING; static final int CREATED; }### Answer:
@Test public void testWorkflow() { Assertions.assertNull( w.getCurrentStep() ); Assertions.assertNull( w.getCurrentActor() ); Assertions.assertEquals( 0, w.getHistory().size() ); Assertions.assertEquals( new WikiPrincipal( "Owner1" ), w.getOwner() ); Assertions.assertEquals( Workflow.CREATED, w.getCurrentState() ); Assertions.assertEquals( Step.TIME_NOT_SET, w.getStartTime() ); Assertions.assertEquals( Step.TIME_NOT_SET, w.getEndTime() ); }