/** * Copyright (c) 2017 committers of YAKINDU and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * committers of YAKINDU - initial API and implementation */ package org.yakindu.sct.generator.java.test; import static org.mockito.Mockito.*; import static org.mockito.Matchers.*; import static org.hamcrest.CoreMatchers.*; import org.yakindu.scr.operations.IOperationsStatemachine.*; import org.mockito.ArgumentCaptor; import static org.mockito.ArgumentCaptor.forClass; import org.junit.*; import static org.junit.Assert.*; import org.yakindu.scr.operations.OperationsStatemachine; import org.yakindu.scr.operations.OperationsStatemachine.State; /** * Unit TestCase for Operations */ @SuppressWarnings("all") public class OperationsTestTest { SCInterfaceOperationCallback defaultMock; InternalOperationCallback internalMock; SCIInterface1OperationCallback interface1Mock; private OperationsStatemachine statemachine; @Before public void setUp() { statemachine = new OperationsStatemachine(); statemachine.init(); defaultMock = mock(SCInterfaceOperationCallback.class); statemachine.getSCInterface().setSCInterfaceOperationCallback(defaultMock); internalMock = mock(InternalOperationCallback.class); statemachine.setInternalOperationCallback(internalMock); interface1Mock = mock(SCIInterface1OperationCallback.class); statemachine.getSCIInterface1().setSCIInterface1OperationCallback(interface1Mock); } @After public void tearDown() { statemachine.getSCInterface().setSCInterfaceOperationCallback(null); statemachine.setInternalOperationCallback(null); statemachine.getSCIInterface1().setSCIInterface1OperationCallback(null); statemachine = null; } @Test public void testOperationsCalled() { when(defaultMock.alwaysTrue()).thenReturn(true); statemachine.enter(); assertTrue(statemachine.isStateActive(State.main_region_A)); statemachine.runCycle(); assertTrue(statemachine.isStateActive(State.main_region_B)); verify(internalMock, atLeastOnce()).internalOperation1(); ArgumentCaptor<Long> longCaptureinternalOperation2_6_0 = forClass(Long.class); verify(internalMock, atLeastOnce()).internalOperation2(longCaptureinternalOperation2_6_0.capture()); assertThat(longCaptureinternalOperation2_6_0.getValue(), is(4l)); verify(internalMock, atLeastOnce()).internalOperation3(); ArgumentCaptor<Double> doubleCaptureinternalOperation3a_8_0 = forClass(Double.class); verify(internalMock, atLeastOnce()).internalOperation3a(doubleCaptureinternalOperation3a_8_0.capture()); assertThat(doubleCaptureinternalOperation3a_8_0.getValue(), is(1.0)); verify(internalMock, atLeastOnce()).internalOperation4(); ArgumentCaptor<Long> longCaptureinternalOperation4a_10_0 = forClass(Long.class); verify(internalMock, atLeastOnce()).internalOperation4a(longCaptureinternalOperation4a_10_0.capture()); assertThat(longCaptureinternalOperation4a_10_0.getValue(), is(5l)); verify(internalMock, atLeastOnce()).internalOperation5(); ArgumentCaptor<String> stringCaptureinternalOperation5a_12_0 = forClass(String.class); verify(internalMock, atLeastOnce()).internalOperation5a(stringCaptureinternalOperation5a_12_0.capture()); statemachine.raiseEv(); statemachine.runCycle(); assertTrue(statemachine.isStateActive(State.main_region_C)); verify(interface1Mock, atLeastOnce()).interfaceOperation1(); ArgumentCaptor<Long> longCaptureinterfaceOperation2_17_0 = forClass(Long.class); verify(interface1Mock, atLeastOnce()).interfaceOperation2(longCaptureinterfaceOperation2_17_0.capture()); assertThat(longCaptureinterfaceOperation2_17_0.getValue(), is(4l)); verify(interface1Mock, atLeastOnce()).interfaceOperation3(); ArgumentCaptor<Double> doubleCaptureinterfaceOperation3a_19_0 = forClass(Double.class); verify(interface1Mock, atLeastOnce()).interfaceOperation3a(doubleCaptureinterfaceOperation3a_19_0.capture()); assertThat(doubleCaptureinterfaceOperation3a_19_0.getValue(), is(1.0)); verify(interface1Mock, atLeastOnce()).interfaceOperation4(); ArgumentCaptor<Long> longCaptureinterfaceOperation4a_21_0 = forClass(Long.class); verify(interface1Mock, atLeastOnce()).interfaceOperation4a(longCaptureinterfaceOperation4a_21_0.capture()); assertThat(longCaptureinterfaceOperation4a_21_0.getValue(), is(5l)); verify(interface1Mock, atLeastOnce()).interfaceOperation5(); ArgumentCaptor<String> stringCaptureinterfaceOperation5a_23_0 = forClass(String.class); verify(interface1Mock, atLeastOnce()).interfaceOperation5a(stringCaptureinterfaceOperation5a_23_0.capture()); statemachine.raiseEv(); statemachine.runCycle(); assertTrue(statemachine.isStateActive(State.main_region_D)); verify(defaultMock, atLeastOnce()).unnamedInterfaceOperation1(); ArgumentCaptor<Long> longCaptureunnamedInterfaceOperation2_28_0 = forClass(Long.class); verify(defaultMock, atLeastOnce()).unnamedInterfaceOperation2(longCaptureunnamedInterfaceOperation2_28_0.capture()); assertThat(longCaptureunnamedInterfaceOperation2_28_0.getValue(), is(4l)); verify(defaultMock, atLeastOnce()).unnamedOperation3(); ArgumentCaptor<Double> doubleCaptureunnamedOperation3a_30_0 = forClass(Double.class); verify(defaultMock, atLeastOnce()).unnamedOperation3a(doubleCaptureunnamedOperation3a_30_0.capture()); assertThat(doubleCaptureunnamedOperation3a_30_0.getValue(), is(1.0)); verify(defaultMock, atLeastOnce()).unnamedOperation4(); ArgumentCaptor<Long> longCaptureunnamedOperation4a_32_0 = forClass(Long.class); verify(defaultMock, atLeastOnce()).unnamedOperation4a(longCaptureunnamedOperation4a_32_0.capture()); assertThat(longCaptureunnamedOperation4a_32_0.getValue(), is(5l)); verify(defaultMock, atLeastOnce()).unnamedOperation5(); ArgumentCaptor<String> stringCaptureunnamedOperation5a_34_0 = forClass(String.class); verify(defaultMock, atLeastOnce()).unnamedOperation5a(stringCaptureunnamedOperation5a_34_0.capture()); } }