public void testAnnotationPickedUpOnProperty() throws Exception { final Class<?> cls = SimpleObjectWithBigDecimalColumnAnnotations.class; final Method method = cls.getMethod("getBigDecimalPropertyWithColumnAnnotation"); facetFactory.process(new FacetFactory.ProcessMethodContext(cls, null, method, methodRemover, facetedMethod)); final BigDecimalValueFacet facet = facetedMethod.getFacet(BigDecimalValueFacet.class); assertNotNull(facet); assertTrue(facet instanceof BigDecimalFacetDerivedFromJdoColumn); assertThat(facet.getPrecision(), is(12)); assertThat(facet.getScale(), is(3)); }
public void testAnnotationDefaultsScaleIfMissing() throws Exception { final Class<?> cls = SimpleObjectWithBigDecimalColumnAnnotations.class; final Method method = cls.getMethod("getBigDecimalPropertyWithColumnAnnotationMissingScale"); facetFactory.process(new FacetFactory.ProcessMethodContext(cls, null, null, method, methodRemover, facetedMethod)); final BigDecimalValueFacet facet = facetedMethod.getFacet(BigDecimalValueFacet.class); assertNotNull(facet); assertTrue(facet instanceof BigDecimalFacetDerivedFromJdoColumn); assertThat(facet.getScale(), is(2)); }
public void testReferenceWithAllowsNullTrue() throws Exception { final Method method = cls.getMethod("getReferenceWithAllowsNullTrue"); facetFactory.process(new FacetFactory.ProcessMethodContext(cls, null, method, methodRemover, facetedMethod)); final MandatoryFacet facet = facetedMethod.getFacet(MandatoryFacet.class); assertNotNull(facet); assertTrue(facet instanceof MandatoryFacetDerivedFromJdoColumn); assertThat(facet.isInvertedSemantics(), is(true)); }
public void testReferenceWithNoAnnotation_isOptional() throws Exception { final Method method = cls.getMethod("getReferenceWithNoAnnotation"); facetFactory.process(new FacetFactory.ProcessMethodContext(cls, null, null, method, methodRemover, facetedMethod)); final MandatoryFacet facet = facetedMethod.getFacet(MandatoryFacet.class); assertNotNull(facet); assertTrue(facet instanceof MandatoryFacetInferredFromAbsenceOfJdoColumn); assertThat(facet.isInvertedSemantics(), is(true)); }
public void testAnnotationDefaultsScaleIfMissing() throws Exception { final Class<?> cls = SimpleObjectWithBigDecimalColumnAnnotations.class; final Method method = cls.getMethod("getBigDecimalPropertyWithColumnAnnotationMissingScale"); facetFactory.process(new FacetFactory.ProcessMethodContext(cls, null, null, method, methodRemover, facetedMethod)); final BigDecimalValueFacet facet = facetedMethod.getFacet(BigDecimalValueFacet.class); assertNotNull(facet); assertTrue(facet instanceof BigDecimalFacetDerivedFromJdoColumn); assertThat(facet.getScale(), is(2)); }
public void testReferenceWithNoAllowsNull_isOptional() throws Exception { final Method method = cls.getMethod("getReferenceWithNoAllowsNull"); facetFactory.process(new FacetFactory.ProcessMethodContext(cls, null, method, methodRemover, facetedMethod)); final MandatoryFacet facet = facetedMethod.getFacet(MandatoryFacet.class); assertNotNull(facet); assertTrue(facet instanceof MandatoryFacetDerivedFromJdoColumn); assertThat(facet.isInvertedSemantics(), is(true)); }
public void testAnnotationDefaultsScaleIfMissing() throws Exception { final Class<?> cls = SimpleObjectWithBigDecimalColumnAnnotations.class; final Method method = cls.getMethod("getBigDecimalPropertyWithColumnAnnotationMissingScale"); facetFactory.process(new FacetFactory.ProcessMethodContext(cls, null, method, methodRemover, facetedMethod)); final BigDecimalValueFacet facet = facetedMethod.getFacet(BigDecimalValueFacet.class); assertNotNull(facet); assertTrue(facet instanceof BigDecimalFacetDerivedFromJdoColumn); assertThat(facet.getScale(), is(2)); }
public void testDoesNotInstallDisabledFacetUsingProtectWhenNotAndRemovesMethod() { final DisabledFacetViaProtectMethodFacetFactory facetFactory = new DisabledFacetViaProtectMethodFacetFactory(); facetFactory.setSpecificationLookup(reflector); reflector.setLoadSpecificationStringReturn(voidSpec); final Method actionMethod = findMethod(CustomerStatic.class, "otherAction", new Class[] { int.class, Long.class }); final Method protectMethod = findMethod(CustomerStatic.class, "protectOtherAction", new Class[] {}); facetFactory.process(new ProcessMethodContext(CustomerStatic.class, actionMethod, methodRemover, facetedMethod)); assertNull(facetedMethod.getFacet(DisabledFacet.class)); assertTrue(methodRemover.getRemovedMethodMethodCalls().contains(protectMethod)); }
public void testDoesNotInstallDisabledFacetUsingProtectWhenNotAndRemovesMethod() { final DisabledFacetViaProtectMethodFacetFactory facetFactory = new DisabledFacetViaProtectMethodFacetFactory(); facetFactory.setSpecificationLookup(reflector); final Method collectionAccessorMethod = findMethod(CustomerStatic.class, "getOtherOrders"); final Method protectMethod = findMethod(CustomerStatic.class, "protectOtherOrders"); facetFactory.process(new ProcessMethodContext(CustomerStatic.class, collectionAccessorMethod, methodRemover, facetedMethod)); assertNull(facetedMethod.getFacet(DisabledFacet.class)); assertTrue(methodRemover.getRemovedMethodMethodCalls().contains(protectMethod)); }
public void testInstallsHiddenFacetUsingAlwaysHideWhenNotAndRemovesMethod() { final HiddenFacetStaticMethodFactory facetFactory = new HiddenFacetStaticMethodFactory(); // mockSpecificationLoader.setLoadSpecificationStringReturn(voidSpec); allowing_specificationLoader_loadSpecification_any_willReturn(this.voidSpec); final Method actionMethod = findMethod(CustomerStatic.class, "otherAction", new Class[] { int.class, Long.class }); final Method alwaysHideMethod = findMethod(CustomerStatic.class, "alwaysHideOtherAction", new Class[] {}); facetFactory.process(new ProcessMethodContext(CustomerStatic.class, null, null, actionMethod, methodRemover, facetedMethod)); assertNull(facetedMethod.getFacet(HiddenFacetOnStaticMethod.class)); assertTrue(methodRemover.getRemovedMethodMethodCalls().contains(alwaysHideMethod)); }
public void testInstallsDisabledFacetUsingProtectAndRemovesMethod() { final DisabledFacetStaticMethodFacetFactory facetFactory = new DisabledFacetStaticMethodFacetFactory(); facetFactory.setServicesInjector(stubServicesInjector); final Method propertyAccessorMethod = findMethod(CustomerStatic.class, "getFirstName"); final Method propertyProtectMethod = findMethod(CustomerStatic.class, "protectFirstName"); facetFactory.process(new ProcessMethodContext(CustomerStatic.class, null, null, propertyAccessorMethod, methodRemover, facetedMethod)); final Facet facet = facetedMethod.getFacet(DisabledFacet.class); assertNotNull(facet); assertTrue(facet instanceof DisabledFacetAbstractAlwaysEverywhere); assertTrue(methodRemover.getRemovedMethodMethodCalls().contains(propertyProtectMethod)); }
public void testInstallsHiddenFacetUsingAlwaysHideAndRemovesMethod() { final HiddenFacetStaticMethodFactory facetFactory = new HiddenFacetStaticMethodFactory(); facetFactory.setServicesInjector(stubServicesInjector); final Method propertyAccessorMethod = findMethod(CustomerStatic.class, "getFirstName"); final Method propertyAlwaysHideMethod = findMethod(CustomerStatic.class, "alwaysHideFirstName"); facetFactory.process(new ProcessMethodContext(CustomerStatic.class, null, null, propertyAccessorMethod, methodRemover, facetedMethod)); final HiddenFacetOnStaticMethod facet = facetedMethod.getFacet(HiddenFacetOnStaticMethod.class); assertNotNull(facet); assertTrue(methodRemover.getRemovedMethodMethodCalls().contains(propertyAlwaysHideMethod)); }
public void testNotPersistentAnnotationPickedUpOnProperty() throws Exception { final Class<?> cls = SimpleObjectWithNotPersistentColumn.class; final Method method = cls.getMethod("getSomeColumn"); facetFactory.process(new FacetFactory.ProcessMethodContext(cls, null, null, method, methodRemover, facetedMethod)); final Facet facet = facetedMethod.getFacet(JdoNotPersistentFacet.class); assertNotNull(facet); assertTrue(facet instanceof JdoNotPersistentFacet); }
@Test(expected=IllegalStateException.class) public void given_noAnnotation_and_configurationSetToIgnoreQueryOnly_andNoSemantics_thenException() { // given allowingPublishingConfigurationToReturn("ignoreQueryOnly"); final Method actionMethod = findMethod(ActionAnnotationFacetFactoryTest.Customer.class, "someAction"); // when facetFactory.processPublishing(new ProcessMethodContext(ActionAnnotationFacetFactoryTest.Customer.class, null, null, actionMethod, mockMethodRemover, facetedMethod)); }
@Test public void givenHasTransactionId_thenIgnored() { final Method actionMethod = findMethod(SomeTransactionalId.class, "someAction"); facetFactory.processPublishing(new ProcessMethodContext(SomeTransactionalId.class, null, null, actionMethod, mockMethodRemover, facetedMethod)); final Facet facet = facetedMethod.getFacet(PublishedActionFacet.class); assertNull(facet); expectNoMethodsRemoved(); }
public void testHiddenWhenAndWhereTableAnnotationPickedUpOn() { class Customer { @Hidden(where=Where.PARENTED_TABLES, when=When.UNTIL_PERSISTED) public void someAction() { } } final Method actionMethod = findMethod(Customer.class, "someAction"); facetFactory.processHidden(new ProcessMethodContext(Customer.class, null, null, actionMethod, methodRemover, facetedMethod)); final HiddenFacetForHiddenAnnotationOnAction facet = facetedMethod.getFacet(HiddenFacetForHiddenAnnotationOnAction.class); assertEquals(Where.PARENTED_TABLES, facet.where()); assertEquals(When.UNTIL_PERSISTED, facet.when()); }
public void testHiddenWhereCollectionTableAnnotationPickedUpOn() { class Customer { @Hidden(where=Where.PARENTED_TABLES) public void someAction() { } } final Method actionMethod = findMethod(Customer.class, "someAction"); facetFactory.processHidden(new ProcessMethodContext(Customer.class, null, null, actionMethod, methodRemover, facetedMethod)); final HiddenFacetForHiddenAnnotationOnAction facet = facetedMethod.getFacet(HiddenFacetForHiddenAnnotationOnAction.class); assertEquals(Where.PARENTED_TABLES, facet.where()); assertEquals(When.ALWAYS, facet.when()); }
public void testHiddenWhenUntilPersistedAnnotationPickedUpOn() { class Customer { @Hidden(when=When.UNTIL_PERSISTED) public void someAction() { } } final Method actionMethod = findMethod(Customer.class, "someAction"); facetFactory.processHidden(new ProcessMethodContext(Customer.class, null, null, actionMethod, methodRemover, facetedMethod)); final HiddenFacetForHiddenAnnotationOnAction facet = facetedMethod.getFacet(HiddenFacetForHiddenAnnotationOnAction.class); assertEquals(When.UNTIL_PERSISTED, facet.when()); assertEquals(Where.ANYWHERE, facet.where()); }
public void testHiddenWhenAlwaysAnnotationPickedUpOn() { class Customer { @Hidden(when=When.ALWAYS) public void someAction() { } } final Method actionMethod = findMethod(Customer.class, "someAction"); facetFactory.processHidden(new ProcessMethodContext(Customer.class, null, null, actionMethod, methodRemover, facetedMethod)); final HiddenFacetForHiddenAnnotationOnAction facet = facetedMethod.getFacet(HiddenFacetForHiddenAnnotationOnAction.class); assertEquals(When.ALWAYS, facet.when()); }
public void testNoFacetIfPropertyTypeIsNotBigDecimal() throws Exception { final Class<?> cls = SimpleObjectWithBigDecimalColumnAnnotations.class; final Method method = cls.getMethod("getStringPropertyWithColumnAnnotation"); facetFactory.process(new FacetFactory.ProcessMethodContext(cls, null, null, method, methodRemover, facetedMethod)); final Facet facet = facetedMethod.getFacet(BigDecimalValueFacet.class); assertNull(facet); }