public void testDefaultedMustHaveANoArgConstructor() { facetFactory.process(new ProcessClassContext(MyDefaultedWithoutNoArgConstructor.class, methodRemover, facetedMethod)); final DefaultedFacetAbstract facet = (DefaultedFacetAbstract) facetedMethod.getFacet(DefaultedFacet.class); assertNull(facet); }
public void testEncodeableHaveANoArgConstructor() { facetFactory.process(new ProcessClassContext(MyEncodeableWithoutNoArgConstructor.class, methodRemover, facetedMethod)); final EncodableFacetAbstract encodeableFacet = (EncodableFacetAbstract) facetedMethod.getFacet(EncodableFacet.class); assertNull(encodeableFacet); }
public void testFacetPickedUp() { facetFactory.process(new ProcessClassContext(MyDefaultedUsingDefaultsProvider.class, methodRemover, facetedMethod)); final DefaultedFacet facet = facetedMethod.getFacet(DefaultedFacet.class); assertNotNull(facet); assertTrue(facet instanceof DefaultedFacetAbstract); }
public void testOptionalAnnotationIgnoredForPrimitiveOnActionParameter() { class Customer { @SuppressWarnings("unused") public void someAction(@Optional final int foo) { } } final Method method = findMethod(Customer.class, "someAction", new Class[] { int.class }); facetFactory.processParamsOptional(new ProcessParameterContext(Customer.class, method, 0, null, facetedMethodParameter)); assertNull(facetedMethod.getFacet(MandatoryFacet.class)); }
public void testEncodeableUsingEncoderDecoderClass() { facetFactory.process(new ProcessClassContext(MyEncodeableUsingEncoderDecoderClass.class, methodRemover, facetedMethod)); final EncodableFacetAbstract encodeableFacet = (EncodableFacetAbstract) facetedMethod.getFacet(EncodableFacet.class); assertEquals(MyEncodeableUsingEncoderDecoderClass.class, encodeableFacet.getEncoderDecoderClass()); }
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()); }
@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 testPluralNameMethodPickedUpOnClassAndMethodRemoved() { final Method pluralNameMethod = findMethod(Customer.class, "pluralName"); facetFactory.process(new ProcessClassContext(Customer.class, methodRemover, facetedMethod)); final Facet facet = facetedMethod.getFacet(PluralFacet.class); assertNotNull(facet); assertTrue(facet instanceof PluralFacetMethod); final PluralFacetMethod pluralFacet = (PluralFacetMethod) facet; assertEquals("Some plural name", pluralFacet.value()); assertTrue(methodRemover.getRemovedMethodMethodCalls().contains(pluralNameMethod)); }
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 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)); }
@Test public void testNameDefaultsToActionsMethodName() { final NamedFacet facet = new NamedFacetAbstract("Reduceheadcount", mockFacetedMethod) { }; mockery.checking(new Expectations() { { one(mockFacetedMethod).getFacet(NamedFacet.class); will(returnValue(facet)); } }); assertEquals("Reduceheadcount", action.getName()); }
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 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 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 testMultiLineAnnotationDefaults() { final MultiLineFacetOnTypeAnnotationFactory facetFactory = new MultiLineFacetOnTypeAnnotationFactory(); @MultiLine class Customer { } facetFactory.process(new ProcessClassContext(Customer.class, methodRemover, facetedMethod)); final Facet facet = facetedMethod.getFacet(MultiLineFacet.class); final MultiLineFacetOnTypeAnnotation multiLineFacetOnTypeAnnotation = (MultiLineFacetOnTypeAnnotation) facet; assertEquals(6, multiLineFacetOnTypeAnnotation.numberOfLines()); assertEquals(true, multiLineFacetOnTypeAnnotation.preventWrapping()); }
public void testDefaultedProviderNameCanBePickedUpFromConfiguration() { final String className = "org.apache.isis.core.metamodel.facets.object.defaults.DefaultedFacetFactoryTest$MyDefaultedWithDefaultsProviderSpecifiedUsingConfiguration"; stubConfiguration.add(DefaultsProviderUtil.DEFAULTS_PROVIDER_NAME_KEY_PREFIX + canonical(className) + DefaultsProviderUtil.DEFAULTS_PROVIDER_NAME_KEY_SUFFIX, className); facetFactory.process(new ProcessClassContext(MyDefaultedWithDefaultsProviderSpecifiedUsingConfiguration.class, methodRemover, facetedMethod)); final DefaultedFacetAbstract facet = (DefaultedFacetAbstract) facetedMethod.getFacet(DefaultedFacet.class); assertNotNull(facet); assertEquals(MyDefaultedWithDefaultsProviderSpecifiedUsingConfiguration.class, facet.getDefaultsProviderClass()); }
public void testNonAnnotatedDefaultedCanBePickedUpFromConfiguration() { final String className = "org.apache.isis.core.metamodel.facets.object.defaults.DefaultedFacetFactoryTest$NonAnnotatedDefaultedDefaultsProviderSpecifiedUsingConfiguration"; stubConfiguration.add(DefaultsProviderUtil.DEFAULTS_PROVIDER_NAME_KEY_PREFIX + canonical(className) + DefaultsProviderUtil.DEFAULTS_PROVIDER_NAME_KEY_SUFFIX, className); facetFactory.process(new ProcessClassContext(NonAnnotatedDefaultedDefaultsProviderSpecifiedUsingConfiguration.class, methodRemover, facetedMethod)); final DefaultedFacetAbstract facet = (DefaultedFacetAbstract) facetedMethod.getFacet(DefaultedFacet.class); assertNotNull(facet); assertEquals(NonAnnotatedDefaultedDefaultsProviderSpecifiedUsingConfiguration.class, facet.getDefaultsProviderClass()); }
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 testFieldOrderAnnotationPickedUpOnClass() { @FieldOrder("foo,bar") class Customer { } facetFactory.process(new ProcessClassContext(Customer.class, methodRemover, facetedMethod)); final Facet facet = facetedMethod.getFacet(FieldOrderFacet.class); assertNotNull(facet); assertTrue(facet instanceof FieldOrderFacetAnnotation); final FieldOrderFacetAnnotation fieldOrderFacetAnnotation = (FieldOrderFacetAnnotation) facet; assertEquals("foo,bar", fieldOrderFacetAnnotation.value()); assertNoMethodsRemoved(); }
public void testParserNameCanBePickedUpFromConfiguration() { final String className = "org.apache.isis.core.metamodel.facets.object.parseable.ParseableFacetAnnotationElseConfigurationFactoryTest$MyParseableWithParserSpecifiedUsingConfiguration"; stubConfiguration.add(ParserUtil.PARSER_NAME_KEY_PREFIX + canonical(className) + ParserUtil.PARSER_NAME_KEY_SUFFIX, className); facetFactory.process(new ProcessClassContext(MyParseableWithParserSpecifiedUsingConfiguration.class, methodRemover, facetedMethod)); final ParseableFacetAbstract facet = (ParseableFacetAbstract) facetedMethod.getFacet(ParseableFacet.class); assertNotNull(facet); assertEquals(MyParseableWithParserSpecifiedUsingConfiguration.class, facet.getParserClass()); }