Search in sources :

Example 1 with CallbackDescriptor

use of org.apache.deltaspike.core.api.config.view.metadata.CallbackDescriptor in project deltaspike by apache.

the class ViewConfigTest method testCallbackExecution.

@Test
public void testCallbackExecution() {
    this.viewConfigExtension.addPageDefinition(SimplePageConfig.class);
    final SimpleTestAccessDecisionVoter testInstance = new SimpleTestAccessDecisionVoter();
    ViewConfigNode node = this.viewConfigExtension.findNode(SimplePageConfig.class);
    // add it to avoid in-container test for this simple constellation - usually not needed!
    node.getCallbackDescriptors().put(TestSecured.class, new ArrayList<CallbackDescriptor>() {

        {
            add(new TestSecured.Descriptor(new Class[] { SimpleTestAccessDecisionVoter.class }, DefaultCallback.class) {

                @Override
                protected Object getTargetObject(Class targetType) {
                    return testInstance;
                }
            });
        }
    });
    ViewConfigResolver viewConfigResolver = this.viewConfigResolverProducer.createViewConfigResolver();
    ViewConfigDescriptor viewConfigDescriptor = viewConfigResolver.getViewConfigDescriptor(SimplePageConfig.class);
    Assert.assertNotNull(viewConfigDescriptor);
    Assert.assertNotNull(viewConfigDescriptor.getCallbackDescriptor(TestSecured.class));
    List<Set<String>> /*return type of one callback*/
    callbackResult = viewConfigDescriptor.getExecutableCallbackDescriptor(TestSecured.class, TestSecured.Descriptor.class).execute("param1", "param2");
    Assert.assertNotNull(callbackResult);
    Assert.assertEquals(1, callbackResult.size());
    Assert.assertEquals(2, callbackResult.iterator().next().size());
    Iterator<String> resultIterator = callbackResult.iterator().next().iterator();
    // the order in the result isn't guaranteed
    Set<String> expectedValues = new HashSet<String>();
    expectedValues.add("param1");
    expectedValues.add("param2");
    while (resultIterator.hasNext()) {
        String currentValue = resultIterator.next();
        if (!expectedValues.remove(currentValue)) {
            Assert.fail("value '" + currentValue + "' not found in the result");
        }
    }
    Assert.assertTrue(expectedValues.isEmpty());
}
Also used : Set(java.util.Set) HashSet(java.util.HashSet) CallbackDescriptor(org.apache.deltaspike.core.api.config.view.metadata.CallbackDescriptor) ViewConfigNode(org.apache.deltaspike.core.spi.config.view.ViewConfigNode) CallbackDescriptor(org.apache.deltaspike.core.api.config.view.metadata.CallbackDescriptor) ViewConfigDescriptor(org.apache.deltaspike.core.api.config.view.metadata.ViewConfigDescriptor) ViewConfigDescriptor(org.apache.deltaspike.core.api.config.view.metadata.ViewConfigDescriptor) ViewConfigResolver(org.apache.deltaspike.core.api.config.view.metadata.ViewConfigResolver) HashSet(java.util.HashSet) Test(org.junit.Test)

Aggregations

HashSet (java.util.HashSet)1 Set (java.util.Set)1 CallbackDescriptor (org.apache.deltaspike.core.api.config.view.metadata.CallbackDescriptor)1 ViewConfigDescriptor (org.apache.deltaspike.core.api.config.view.metadata.ViewConfigDescriptor)1 ViewConfigResolver (org.apache.deltaspike.core.api.config.view.metadata.ViewConfigResolver)1 ViewConfigNode (org.apache.deltaspike.core.spi.config.view.ViewConfigNode)1 Test (org.junit.Test)1