You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

BeanBinderPropertySetTest.java 1.8KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. /*
  2. * Copyright 2000-2016 Vaadin Ltd.
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License"); you may not
  5. * use this file except in compliance with the License. You may obtain a copy of
  6. * the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
  12. * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
  13. * License for the specific language governing permissions and limitations under
  14. * the License.
  15. */
  16. package com.vaadin.data;
  17. import java.io.ByteArrayInputStream;
  18. import java.io.ByteArrayOutputStream;
  19. import java.io.ObjectInputStream;
  20. import java.io.ObjectOutputStream;
  21. import org.junit.Assert;
  22. import org.junit.Test;
  23. import com.vaadin.data.provider.bov.Person;
  24. public class BeanBinderPropertySetTest {
  25. @Test
  26. public void testSerializeDeserialize() throws Exception {
  27. BinderPropertyDefinition<Person, ?> definition = BeanBinderPropertySet
  28. .get(Person.class).getProperty("born")
  29. .orElseThrow(RuntimeException::new);
  30. ByteArrayOutputStream bos = new ByteArrayOutputStream();
  31. ObjectOutputStream out = new ObjectOutputStream(bos);
  32. out.writeObject(definition);
  33. out.flush();
  34. ObjectInputStream inputStream = new ObjectInputStream(
  35. new ByteArrayInputStream(bos.toByteArray()));
  36. BinderPropertyDefinition<Person, ?> deserializedDefinition = (BinderPropertyDefinition<Person, ?>) inputStream
  37. .readObject();
  38. ValueProvider<Person, ?> getter = deserializedDefinition.getGetter();
  39. Person person = new Person("Milennial", 2000);
  40. Integer age = (Integer) getter.apply(person);
  41. Assert.assertEquals(Integer.valueOf(2000), age);
  42. }
  43. }