Package ru.yandex.qatools.allure.utils

Source Code of ru.yandex.qatools.allure.utils.AnnotationManagerTest

package ru.yandex.qatools.allure.utils;

import org.junit.Before;
import org.junit.Test;

import ru.yandex.qatools.allure.annotations.Step;
import ru.yandex.qatools.allure.events.TestCaseStartedEvent;
import ru.yandex.qatools.allure.events.TestSuiteStartedEvent;
import ru.yandex.qatools.allure.model.*;
import ru.yandex.qatools.allure.utils.testdata.SimpleClass;

import java.lang.annotation.Annotation;
import java.util.List;

import static org.hamcrest.Matchers.nullValue;
import static org.hamcrest.Matchers.hasItems;
import static org.hamcrest.Matchers.not;
import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.hasSize;
import static org.hamcrest.core.Is.is;
import static org.junit.Assert.*;
import static ru.yandex.qatools.allure.config.AllureModelUtils.*;

/**
* @author Dmitry Baev charlie@yandex-team.ru
*         Date: 14.12.13
*/
public class AnnotationManagerTest {

    private AnnotationManager annotationManager;
   
    private AnnotationManager setAnnotationManager(String method) throws Exception{
        Annotation[] annotations = SimpleClass.class.getMethod(method).getAnnotations();
        Annotation[] defaultAnnotations = SimpleClass.class.getAnnotations();
        annotationManager = new AnnotationManager(annotations);
        annotationManager.setDefaults(defaultAnnotations);
        return annotationManager;
    }
   
    @Before
    public void setUpCaseAnnotations() throws Exception {
        Annotation[] annotations = SimpleClass.class.getMethod("simpleMethod").getAnnotations();
        annotationManager = new AnnotationManager(annotations);

    }

    @Test
    public void testIsAnnotationPresentMethods() throws Exception {
        assertTrue(annotationManager.isTitleAnnotationPresent());
        assertTrue(annotationManager.isSeverityAnnotationPresent());
        assertTrue(annotationManager.isStoriesAnnotationPresent());
        assertTrue(annotationManager.isFeaturesAnnotationPresent());
        assertTrue(annotationManager.isDescriptionAnnotationPresent());
        assertTrue(annotationManager.isIssueAnnotationPresent());
        assertTrue(annotationManager.isIssuesAnnotationPresent());
        assertFalse(annotationManager.isAnnotationPresent(Step.class));
    }

    @Test
    public void testTitleValueGetter() {
        assertThat(annotationManager.getTitle(), is("some.title"));
    }

    @Test
    public void testDescriptionValueGetter() throws Exception {
        Description description = annotationManager.getDescription();
        assertThat(description.getValue(), is("some.description"));
        assertThat(description.getType(), is(DescriptionType.TEXT));
    }

    @Test
    public void testSeverityValueGetter() throws Exception {
        assertThat(annotationManager.getSeverity(), is(SeverityLevel.BLOCKER));
    }

    @Test
    public void testStoryLabelsGetter() throws Exception {
        List<Label> labels = annotationManager.getStoryLabels();
        assertThat(labels, hasSize(1));
        assertEquals(labels.get(0), createLabel(LabelName.STORY, "some.story"));
    }

    @Test
    public void testFeaturesLabelsGetter() throws Exception {
        List<Label> labels = annotationManager.getFeatureLabels();
        assertThat(labels, hasSize(1));
        assertEquals(labels.get(0), createLabel(LabelName.FEATURE, "some.feature"));
    }

    @Test
    public void testUpdateTestSuiteStartedEvent() throws Exception {
        TestSuiteStartedEvent event = new TestSuiteStartedEvent("some.uid", "some.name");
        annotationManager.update(event);

        assertThat(event.getTitle(), equalTo("some.title"));

        Description description = annotationManager.getDescription();
        assertThat(description.getValue(), is("some.description"));
        assertThat(description.getType(), is(DescriptionType.TEXT));

        assertThat(event.getLabels(), not(hasItems(
                createSeverityLabel(SeverityLevel.BLOCKER)
        )));
        assertThat(event.getLabels(), hasItems(
                createStoryLabel("some.story"),
                createFeatureLabel("some.feature"),
                createIssueLabel("some.simple.issue"),
                createIssueLabel("some.nested.issue.1"),
                createIssueLabel("some.nested.issue.2")
        ));  
    }

    @Test
    public void testUpdateTestCaseStartedEvent() throws Exception {
        TestCaseStartedEvent event = new TestCaseStartedEvent("some.uid", "some.name");
        annotationManager.update(event);

        assertThat(event.getTitle(), equalTo("some.title"));

        Description description = annotationManager.getDescription();
        assertThat(description.getValue(), is("some.description"));
        assertThat(description.getType(), is(DescriptionType.TEXT));

        assertThat(event.getLabels(), hasItems(
                createStoryLabel("some.story"),
                createFeatureLabel("some.feature"),
                createSeverityLabel(SeverityLevel.BLOCKER),
                createIssueLabel("some.simple.issue"),
                createIssueLabel("some.nested.issue.1"),
                createIssueLabel("some.nested.issue.2")
        ));       
    }
   
    @Test
    public void testInitialValuesUpdateTestCaseStartedEvent() throws Exception {
        AnnotationManager annotationManager = setAnnotationManager("simpleMethod");

        TestCaseStartedEvent event = new TestCaseStartedEvent("some.uid", "some.name");
        annotationManager.update(event);

        assertThat(event.getTitle(), equalTo("some.title"));

        Description description = annotationManager.getDescription();
        assertThat(description.getValue(), is("some.description"));
        assertThat(description.getType(), is(DescriptionType.TEXT));

        assertThat(event.getLabels(), hasItems(
                createStoryLabel("some.story"),
                createFeatureLabel("some.feature"),
                createSeverityLabel(SeverityLevel.BLOCKER),
                createIssueLabel("some.simple.issue"),
                createIssueLabel("some.nested.issue.1"),
                createIssueLabel("some.nested.issue.2")
        ));
    }

    @Test
    public void testDefaultValuesUpdateTestCaseStartedEvent() throws Exception {
        AnnotationManager annotationManager = setAnnotationManager("defaultMethod");

        TestCaseStartedEvent event = new TestCaseStartedEvent("some.uid", "some.name");
        annotationManager.update(event);

        assertThat(event.getTitle(), is(nullValue()));
        Description description = annotationManager.getDescription();
        assertThat(description, is(nullValue()));
        assertThat(event.getLabels(), hasItems(
                createStoryLabel("default.story"),
                createFeatureLabel("default.feature"),
                createIssueLabel("default.issue")
        ));
    }
   
    @Test
    public void testCombinedValuesUpdateTestCaseStartedEvent() throws Exception {
        AnnotationManager annotationManager = setAnnotationManager("combinedMethod");

        TestCaseStartedEvent event = new TestCaseStartedEvent("some.uid", "some.name");
        annotationManager.update(event);
      
        assertThat(event.getTitle(), is(nullValue()));
        Description description = annotationManager.getDescription();
        assertThat(description, is(nullValue()));
        assertThat(event.getLabels(), hasItems(
                createStoryLabel("default.story"),
                createFeatureLabel("default.feature"),
                createSeverityLabel(SeverityLevel.CRITICAL),
                createIssueLabel("initial.issue")
        ));
    }
   
}
TOP

Related Classes of ru.yandex.qatools.allure.utils.AnnotationManagerTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.