TestPersonFactory.java 1.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package com.zipcodewilmington.streams;
  2. import com.zipcodewilmington.streams.tools.ReflectionUtils;
  3. import com.zipcodewilmington.streams.anthropoid.Person;
  4. import com.zipcodewilmington.streams.anthropoid.PersonFactory;
  5. import org.junit.Assert;
  6. import org.junit.Test;
  7. import java.lang.reflect.Field;
  8. import java.util.HashMap;
  9. import java.util.Map;
  10. import java.util.stream.Stream;
  11. /**
  12. * Created by leon on 5/24/17.
  13. */
  14. public class TestPersonFactory implements TestConstants{
  15. int collectionSize = 1000;
  16. @Test
  17. public void testCreateRandomPersonList() {
  18. checkStream(PersonFactory.createPersonList(collectionSize).stream());
  19. }
  20. @Test
  21. public void testCreateRandomPersonArray() {
  22. checkStream(Stream.of(PersonFactory.createPersonArray(collectionSize)));
  23. }
  24. @Test
  25. public void testCreateRandomPersonStream() {
  26. checkStream(PersonFactory.createPersonStream(collectionSize));
  27. }
  28. private void checkStream(Stream<Person> personStream) {
  29. String messageCheckSize = "Ensuring appropriately sized stream was produced.";
  30. String messageCheckKey = "Ensuring field is non-null";
  31. String messageCheckValue = "Ensuring field-value is non-null";
  32. Person[] personArray = personStream.toArray(Person[]::new);
  33. Assert.assertEquals(messageCheckSize, collectionSize, personArray.length);
  34. for (Person person : personArray) {
  35. HashMap<Field, String> fieldMap = ReflectionUtils.getFieldMap(person);
  36. for (Map.Entry<Field, String> entry : fieldMap.entrySet()) {
  37. Field key = entry.getKey();
  38. String value = entry.getValue();
  39. Assert.assertTrue(messageCheckKey, key != null);
  40. Assert.assertTrue(messageCheckValue, value != null);
  41. }
  42. }
  43. }
  44. }