package ru.yandex.qatools.allure.aspects; import org.junit.Before; import org.junit.Ignore; import org.junit.Test; import org.mockito.InOrder; import ru.yandex.qatools.allure.Allure; import ru.yandex.qatools.allure.aspects.testdata.MySteps; import ru.yandex.qatools.allure.config.AllureConfig; import ru.yandex.qatools.allure.events.MakeAttachmentEvent; import ru.yandex.qatools.allure.events.StepFailureEvent; import ru.yandex.qatools.allure.events.StepFinishedEvent; import ru.yandex.qatools.allure.events.StepStartedEvent; import static org.mockito.Matchers.eq; import static org.mockito.Mockito.inOrder; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyNoMoreInteractions; /** * @author Dmitry Baev charlie@yandex-team.ru * Date: 08.12.14 */ public class AspectTest { private Allure allure = mock(Allure.class); private MySteps steps = new MySteps(); @Before public void setUp() throws Exception { AllureStepsAspects.setAllure(allure); AllureAttachAspects.setAllure(allure); } @Test public void sampleStepTest() throws Exception { steps.sampleStep(); InOrder inOrder = inOrder(allure); inOrder.verify(allure).fire(eq(new StepStartedEvent("sampleStep"))); inOrder.verify(allure).fire(eq(new StepFinishedEvent())); inOrder.verifyNoMoreInteractions(); } @Test public void failedStepTest() throws Exception { Exception exception = new Exception("something"); try { steps.failedStep(exception); } catch (Exception ignored) { } InOrder inOrder = inOrder(allure); inOrder.verify(allure).fire(eq(new StepStartedEvent("failedStep[java.lang.Exception: something]"))); inOrder.verify(allure).fire(eq(new StepFailureEvent().withThrowable(exception))); inOrder.verify(allure).fire(eq(new StepFinishedEvent())); inOrder.verifyNoMoreInteractions(); } @Test public void stepWithTitleTest() throws Exception { steps.stepWithTitle(); InOrder inOrder = inOrder(allure); inOrder.verify(allure).fire(eq(new StepStartedEvent("stepWithTitle").withTitle("Tata title"))); inOrder.verify(allure).fire(eq(new StepFinishedEvent())); inOrder.verifyNoMoreInteractions(); } @Test public void staticStepTest() throws Exception { MySteps.sampleStaticStep(); InOrder inOrder = inOrder(allure); inOrder.verify(allure).fire(eq(new StepStartedEvent("sampleStaticStep"))); inOrder.verify(allure).fire(eq(new StepFinishedEvent())); inOrder.verifyNoMoreInteractions(); } @Test public void sampleByteAttachmentTest() throws Exception { byte[] bytes = "ata".getBytes(AllureConfig.newInstance().getAttachmentsEncoding()); steps.byteAttachment(bytes); verify(allure).fire(eq(new MakeAttachmentEvent(bytes, "byteAttachment", ""))); verifyNoMoreInteractions(allure); } @Test public void sampleStringAttachmentTest() throws Exception { byte[] bytes = "ata".getBytes(AllureConfig.newInstance().getAttachmentsEncoding()); steps.stringAttachment("ata"); verify(allure).fire(eq(new MakeAttachmentEvent(bytes, "super-title", "super-type"))); verifyNoMoreInteractions(allure); } @Test public void sampleStringAttachmentWithParametersInTitleTest() throws Exception { byte[] bytes = "123".getBytes(AllureConfig.newInstance().getAttachmentsEncoding()); steps.stringAttachment("message", "123"); verify(allure).fire(eq(new MakeAttachmentEvent(bytes, "stringAttachment: message", ""))); verifyNoMoreInteractions(allure); } }