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;
+        }
+        
+    }
+
+    
 }

Reply via email to