Search in sources :

Example 1 with ClassInfo

use of uk.co.jemos.podam.api.ClassInfo in project podam by devopsfolks.

the class ClassInfoTest method podamShouldReturnAValidClassInfoForPojoWithNoAttributes.

@Test
@Title("Podam should return valid class info for POJOs with no attributes")
public void podamShouldReturnAValidClassInfoForPojoWithNoAttributes() {
    List<ClassAttribute> attributes = new ArrayList<ClassAttribute>();
    ClassInfo expectedClassInfo = podamFactorySteps.givenAClassInfoForPojoWithNoAttributes(EmptyTestPojo.class, attributes);
    ClassAttributeApprover nullApprover = null;
    ClassInfo actualClassInfo = podamInvocationSteps.getClassInfo(EmptyTestPojo.class, nullApprover);
    podamValidationSteps.theTwoObjectsShouldBeEqual(expectedClassInfo, actualClassInfo);
}
Also used : ClassAttribute(uk.co.jemos.podam.api.ClassAttribute) ArrayList(java.util.ArrayList) ClassAttributeApprover(uk.co.jemos.podam.api.ClassAttributeApprover) ClassInfo(uk.co.jemos.podam.api.ClassInfo) Test(org.junit.Test) Title(net.thucydides.core.annotations.Title)

Example 2 with ClassInfo

use of uk.co.jemos.podam.api.ClassInfo in project podam by devopsfolks.

the class ClassInfoTest method inPresenceOfExcludeAnnotationsTheClassInfoObjectShouldContainAValidSetOfPojoAttributes.

@Test
@Title("The ClassInfo object created for a class should handle @PodamExcludeAnnotations")
public void inPresenceOfExcludeAnnotationsTheClassInfoObjectShouldContainAValidSetOfPojoAttributes() {
    Set<Class<? extends Annotation>> excludeAnnotations = podamFactorySteps.givenASetOfExcludedAnnotationsToBeExcluded(SimplePojoWithExcludeAnnotationToTestSetters.TestExclude.class);
    Set<String> excludeFields = new HashSet<String>();
    ClassInfo classInfo = podamFactorySteps.givenAClassInfoForPojoWithWithExcludedAnnotationsAndFields(SimplePojoWithExcludeAnnotationToTestSetters.class, excludeAnnotations, excludeFields);
    podamValidationSteps.theObjectShouldNotBeNull(classInfo);
    Set<String> attribs = new HashSet<String>();
    attribs.add("stringField");
    attribs.add("intField");
    classInfoValidationSteps.theClassInfoAttributesShouldMatchthePojoOnes(attribs, classInfo.getClassAttributes());
}
Also used : SimplePojoWithExcludeAnnotationToTestSetters(uk.co.jemos.podam.test.dto.SimplePojoWithExcludeAnnotationToTestSetters) Annotation(java.lang.annotation.Annotation) HashSet(java.util.HashSet) ClassInfo(uk.co.jemos.podam.api.ClassInfo) Test(org.junit.Test) Title(net.thucydides.core.annotations.Title)

Example 3 with ClassInfo

use of uk.co.jemos.podam.api.ClassInfo in project podam by devopsfolks.

the class ClassInfoTest method inPresenceOfExcludedAttributesTheClassInfoObjectShouldNotContainThoseAttributes.

@Test
@Title("In Presence of excluded attributes, the Class Info object should not contain those attributes")
public void inPresenceOfExcludedAttributesTheClassInfoObjectShouldNotContainThoseAttributes() {
    Set<Class<? extends Annotation>> excludeAnnotations = podamFactorySteps.givenASetOfExcludedAnnotationsToBeExcluded();
    Set<String> excludeFields = podamFactorySteps.givenASetOfExcludedFields("excludeField1", "excludeField2", "excludeField3");
    ClassInfo classInfo = podamFactorySteps.givenAClassInfoForPojoWithWithExcludedAnnotationsAndFields(SimplePojoWithExcludeAnnotationToTestSetters.class, excludeAnnotations, excludeFields);
    podamValidationSteps.theObjectShouldNotBeNull(classInfo);
    Set<String> attribs = new HashSet<String>();
    attribs.add("stringField");
    attribs.add("intField");
    classInfoValidationSteps.theClassInfoAttributesShouldMatchthePojoOnes(attribs, classInfo.getClassAttributes());
}
Also used : Annotation(java.lang.annotation.Annotation) ClassInfo(uk.co.jemos.podam.api.ClassInfo) HashSet(java.util.HashSet) Test(org.junit.Test) Title(net.thucydides.core.annotations.Title)

Example 4 with ClassInfo

use of uk.co.jemos.podam.api.ClassInfo in project podam by devopsfolks.

the class ClassInfoTest method podamShouldReturnAClassInfoObjectWithNonStandardAttributesWithCustomStrategy.

@Test
@Title("Podam should be able to find non-standard attributes with a custom class info strategy")
public void podamShouldReturnAClassInfoObjectWithNonStandardAttributesWithCustomStrategy() {
    ClassAttributeApprover nullApprover = null;
    AbstractClassInfoStrategy classInfoStrategy = new AbstractClassInfoStrategy() {

        @Override
        protected Pattern getGetterPattern() {
            return Pattern.compile("^whatIs");
        }

        @Override
        protected Pattern getSetterPattern() {
            return Pattern.compile("^with");
        }
    };
    ClassInfo actualClassInfo = podamInvocationSteps.getClassInfoWithCustomClassStrategy(NonStandardPojoToTestSetters.class, classInfoStrategy, nullApprover);
    podamValidationSteps.theObjectShouldNotBeNull(actualClassInfo);
    podamValidationSteps.theTwoObjectsShouldBeEqual(NonStandardPojoToTestSetters.class, actualClassInfo.getClassName());
    Set<String> attribs = new HashSet<String>();
    attribs.add("stringField");
    attribs.add("intField");
    classInfoValidationSteps.theClassInfoAttributesShouldMatchthePojoOnes(attribs, actualClassInfo.getClassAttributes());
}
Also used : AbstractClassInfoStrategy(uk.co.jemos.podam.api.AbstractClassInfoStrategy) ClassAttributeApprover(uk.co.jemos.podam.api.ClassAttributeApprover) ClassInfo(uk.co.jemos.podam.api.ClassInfo) HashSet(java.util.HashSet) Test(org.junit.Test) Title(net.thucydides.core.annotations.Title)

Example 5 with ClassInfo

use of uk.co.jemos.podam.api.ClassInfo in project podam by devopsfolks.

the class ClassInfoTest method podamShouldReturnAClassInfoObjectWhichContainsTheSameAttributesAsThePojoBeingProcessed.

@Test
@Title("Podam should generate a ClassInfo which contains information for the setters contained in the POJO")
public void podamShouldReturnAClassInfoObjectWhichContainsTheSameAttributesAsThePojoBeingProcessed() {
    ClassAttributeApprover nullApprover = null;
    ClassInfo actualClassInfo = podamInvocationSteps.getClassInfo(SimplePojoToTestSetters.class, nullApprover);
    podamValidationSteps.theObjectShouldNotBeNull(actualClassInfo);
    podamValidationSteps.theTwoObjectsShouldBeEqual(SimplePojoToTestSetters.class, actualClassInfo.getClassName());
    Set<String> attribs = new HashSet<String>();
    attribs.add("stringField");
    attribs.add("intField");
    classInfoValidationSteps.theClassInfoAttributesShouldMatchthePojoOnes(attribs, actualClassInfo.getClassAttributes());
}
Also used : ClassAttributeApprover(uk.co.jemos.podam.api.ClassAttributeApprover) ClassInfo(uk.co.jemos.podam.api.ClassInfo) HashSet(java.util.HashSet) Test(org.junit.Test) Title(net.thucydides.core.annotations.Title)

Aggregations

Title (net.thucydides.core.annotations.Title)5 Test (org.junit.Test)5 ClassInfo (uk.co.jemos.podam.api.ClassInfo)5 HashSet (java.util.HashSet)4 ClassAttributeApprover (uk.co.jemos.podam.api.ClassAttributeApprover)3 Annotation (java.lang.annotation.Annotation)2 ArrayList (java.util.ArrayList)1 AbstractClassInfoStrategy (uk.co.jemos.podam.api.AbstractClassInfoStrategy)1 ClassAttribute (uk.co.jemos.podam.api.ClassAttribute)1 SimplePojoWithExcludeAnnotationToTestSetters (uk.co.jemos.podam.test.dto.SimplePojoWithExcludeAnnotationToTestSetters)1