Adds tests for serialization of lambda models

And applies code style formatting


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/fbd6615e
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/fbd6615e
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/fbd6615e

Branch: refs/heads/master
Commit: fbd6615eb1291c96ad3b39342e9483eaa87ac4d0
Parents: e91599b
Author: Martijn Dashorst <[email protected]>
Authored: Fri Nov 11 16:27:37 2016 +0100
Committer: Martijn Dashorst <[email protected]>
Committed: Fri Nov 11 16:29:37 2016 +0100

----------------------------------------------------------------------
 .../org/apache/wicket/model/IModelTest.java     | 71 ++++++++++++++------
 1 file changed, 50 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/fbd6615e/wicket-core/src/test/java/org/apache/wicket/model/IModelTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/model/IModelTest.java 
b/wicket-core/src/test/java/org/apache/wicket/model/IModelTest.java
index d76d117..c2efe29 100644
--- a/wicket-core/src/test/java/org/apache/wicket/model/IModelTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/model/IModelTest.java
@@ -18,8 +18,10 @@ package org.apache.wicket.model;
 
 import static org.hamcrest.Matchers.equalTo;
 import static org.hamcrest.Matchers.is;
+import static org.hamcrest.Matchers.not;
 import static org.hamcrest.Matchers.nullValue;
 
+import org.apache.wicket.core.util.lang.WicketObjects;
 import org.apache.wicket.model.lambda.Address;
 import org.apache.wicket.model.lambda.Person;
 import org.danekja.java.util.function.serializable.SerializableBiFunction;
@@ -51,8 +53,7 @@ public class IModelTest extends Assert
        @Test
        public void filterMatch()
        {
-               IModel<Person> johnModel = Model.of(person)
-                               .filter((p) -> p.getName().equals(name));
+               IModel<Person> johnModel = Model.of(person).filter((p) -> 
p.getName().equals(name));
 
                assertThat(johnModel.getObject(), is(person));
        }
@@ -60,8 +61,7 @@ public class IModelTest extends Assert
        @Test
        public void filterNoMatch()
        {
-               IModel<Person> johnModel = Model.of(person)
-                               .filter((p) -> p.getName().equals("Jane"));
+               IModel<Person> johnModel = Model.of(person).filter((p) -> 
p.getName().equals("Jane"));
 
                assertThat(johnModel.getObject(), is(nullValue()));
        }
@@ -82,7 +82,9 @@ public class IModelTest extends Assert
        @Test
        public void map2()
        {
-               IModel<String> streetModel = 
Model.of(person).map(Person::getAddress).map(Address::getStreet);
+               IModel<String> streetModel = Model.of(person)
+                       .map(Person::getAddress)
+                       .map(Address::getStreet);
                assertThat(streetModel.getObject(), is(equalTo(street)));
        }
 
@@ -96,9 +98,8 @@ public class IModelTest extends Assert
        public void combineWith()
        {
                IModel<String> janeModel = Model.of("Jane");
-               SerializableBiFunction<Person, String, String> function =
-                               (SerializableBiFunction<Person, String, 
String>) (person1, other) ->
-                                               person1.getName() + " is in 
relationship with " + other;
+               SerializableBiFunction<Person, String, String> function = 
(SerializableBiFunction<Person, String, String>)(
+                       person1, other) -> person1.getName() + " is in 
relationship with " + other;
                IModel<String> relationShipModel = 
Model.of(person).combineWith(janeModel, function);
                assertThat(relationShipModel.getObject(), is(equalTo("John is 
in relationship with Jane")));
        }
@@ -107,9 +108,8 @@ public class IModelTest extends Assert
        public void combineWithNullObject()
        {
                IModel<String> janeModel = Model.of((String)null);
-               SerializableBiFunction<Person, String, String> function =
-                               (SerializableBiFunction<Person, String, 
String>) (person1, other) ->
-                                               person1.getName() + " is in 
relationship with " + other;
+               SerializableBiFunction<Person, String, String> function = 
(SerializableBiFunction<Person, String, String>)(
+                       person1, other) -> person1.getName() + " is in 
relationship with " + other;
                IModel<String> relationShipModel = 
Model.of(person).combineWith(janeModel, function);
                assertThat(relationShipModel.getObject(), is(nullValue()));
        }
@@ -118,9 +118,8 @@ public class IModelTest extends Assert
        public void combineWithNullModel()
        {
                IModel<String> janeModel = null;
-               SerializableBiFunction<Person, String, String> function =
-                               (SerializableBiFunction<Person, String, 
String>) (person1, other) ->
-                                               person1.getName() + " is in 
relationship with " + other;
+               SerializableBiFunction<Person, String, String> function = 
(SerializableBiFunction<Person, String, String>)(
+                       person1, other) -> person1.getName() + " is in 
relationship with " + other;
                Model.of(person).combineWith(janeModel, function);
        }
 
@@ -134,12 +133,7 @@ public class IModelTest extends Assert
        public void flatMap()
        {
                IModel<String> heirModel = Model.of(person)
-                       .flatMap(john ->
-                                       LambdaModel.of(
-                                               () -> john.getName() + " is my 
parent",
-                                               john::setName
-                                       )
-                       );
+                       .flatMap(john -> LambdaModel.of(() -> john.getName() + 
" is my parent", john::setName));
                assertThat(heirModel.getObject(), is(equalTo("John is my 
parent")));
 
                String newValue = "Matthias";
@@ -168,7 +162,9 @@ public class IModelTest extends Assert
        {
                person.setName(null);
                String defaultName = "Default name";
-               IModel<String> defaultNameModel = 
Model.of(person).map(Person::getName).orElseGet(() -> defaultName);
+               IModel<String> defaultNameModel = Model.of(person)
+                       .map(Person::getName)
+                       .orElseGet(() -> defaultName);
 
                assertThat(defaultNameModel.getObject(), 
is(equalTo(defaultName)));
        }
@@ -178,4 +174,37 @@ public class IModelTest extends Assert
        {
                Model.of(person).map(Person::getName).orElseGet(null);
        }
+
+       @Test
+       public void serializableMethodReference()
+       {
+               Person p = new Person();
+               IModel<String> m = p::getName;
+               assertThat(WicketObjects.cloneObject(m), is(not(nullValue())));
+       }
+
+       static class Account
+       {
+               private Person person = new Person();
+               {
+                       person.setName("Some Name");
+               }
+
+               public Person getPerson()
+               {
+                       return person;
+               }
+       }
+
+       @Test
+       public void serializableMethodChainReference()
+       {
+               IModel<Account> accountModel = 
LoadableDetachableModel.of(Account::new);
+               IModel<Person> personModel = 
accountModel.map(Account::getPerson);
+               IModel<String> nameModel = personModel.map(Person::getName);
+
+               IModel<String> clone = WicketObjects.cloneObject(nameModel);
+               assertThat(clone, is(not(nullValue())));
+               assertThat(clone.getObject(), is("Some Name"));
+       }
 }

Reply via email to