package org.tynamo.descriptor;
import org.apache.tapestry5.beaneditor.BeanModel;
import org.apache.tapestry5.test.TapestryTestCase;
import org.testng.annotations.Test;
import org.tynamo.PageType;
import org.tynamo.internal.services.DefaultExclusionsBMModifier;
import org.tynamo.services.DescriptorService;
import org.tynamo.test.Baz;
import org.tynamo.test.Foo;
import java.util.Collections;
import java.util.Set;
public class DefaultExclusionsBMModifierTest extends TapestryTestCase
{
@Test
void exclude()
{
BeanModel model = mockBeanModel();
DescriptorService descriptorService = newMock(DescriptorService.class);
TynamoClassDescriptorImpl classDescriptor = new TynamoClassDescriptorImpl(Foo.class);
IdentifierDescriptor idProp = new IdentifierDescriptorImpl(Foo.class, "id", String.class);
TynamoPropertyDescriptor multiWordProp =
new TynamoPropertyDescriptorImpl(Foo.class, "multiWordProperty", String.class);
CollectionDescriptor bazzesDescriptor = new CollectionDescriptor(Foo.class, "bazzes", Set.class);
bazzesDescriptor.setElementType(Baz.class);
Collections.addAll(classDescriptor.getPropertyDescriptors(), idProp, multiWordProp, bazzesDescriptor);
expect(model.exclude("id", "bazzes")).andReturn(model);
expect(model.getBeanType()).andReturn(Foo.class);
expect(descriptorService.getClassDescriptor(Foo.class)).andReturn(classDescriptor);
replay();
DefaultExclusionsBMModifier modifier = new DefaultExclusionsBMModifier(descriptorService);
modifier.modify(model, PageType.LIST.getContextKey());
verify();
}
}