TAP5-2560: adding unit test. Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/bc719928 Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/bc719928 Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/bc719928
Branch: refs/heads/5.4.x Commit: bc7199284f049f1e8f7b2b6589b5b02014c8d634 Parents: 32fde0f Author: Thiago H. de Paula Figueiredo <[email protected]> Authored: Wed Jan 9 22:43:33 2019 -0200 Committer: Thiago H. de Paula Figueiredo <[email protected]> Committed: Wed Jan 9 22:45:17 2019 -0200 ---------------------------------------------------------------------- .../AbstractBeanModelSourceImplTest.java | 48 ++++++++++++++++++++ 1 file changed, 48 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/bc719928/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/AbstractBeanModelSourceImplTest.java ---------------------------------------------------------------------- diff --git a/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/AbstractBeanModelSourceImplTest.java b/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/AbstractBeanModelSourceImplTest.java index 1294934..a3b5939 100644 --- a/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/AbstractBeanModelSourceImplTest.java +++ b/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/AbstractBeanModelSourceImplTest.java @@ -723,6 +723,26 @@ public abstract class AbstractBeanModelSourceImplTest extends InternalBaseTestCa verify(); } + // https://issues.apache.org/jira/browse/TAP5-2560 + @Test + public void missing_property_due_to_wrong_type_parameter_resolution() + { + + Messages messages = mockMessages(); + + stub_contains(messages, false); + + replay(); + + BeanModel<FileContentUnit> beanModel = source.createDisplayModel(FileContentUnit.class, messages); + + // throws "org.apache.tapestry5.internal.services.PropertyExpressionException: Exception generating conduit for expression 'content.mimeType': Class org.apache.tapestry5.internal.services.AbstractBeanModelSourceImplTest$ContentData does not contain a property (or public field) named 'mimeType'." without fix + beanModel.add("content.mimeType"); + + verify(); + + } + final private static class SortableBean { private int sortableByDefault; @@ -754,4 +774,32 @@ public abstract class AbstractBeanModelSourceImplTest extends InternalBaseTestCa } + public interface NonTranslatableContentUnit<T extends ContentData> { + T getContent(); + } + + public interface BinaryContentUnit<T extends BinaryContent> extends NonTranslatableContentUnit<T> {} + + public interface FileContentUnit extends BinaryContentUnit<FileContent> {} + + public interface ContentData { + boolean isEmpty(); + } + + public interface BinaryContent extends ContentData { + String getMimeType(); + } + + public interface FileContent extends BinaryContent {} + + public class ConcreteFileContent implements FileContentUnit { + + @Override + public FileContent getContent() { + return null; + } + + } + + }
