Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

LikeTest.java 7.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  1. package com.vaadin.v7.data.util.sqlcontainer.filters;
  2. import static org.junit.Assert.assertEquals;
  3. import static org.junit.Assert.assertFalse;
  4. import static org.junit.Assert.assertTrue;
  5. import org.junit.Test;
  6. import com.vaadin.v7.data.Item;
  7. import com.vaadin.v7.data.util.ObjectProperty;
  8. import com.vaadin.v7.data.util.PropertysetItem;
  9. import com.vaadin.v7.data.util.filter.Like;
  10. public class LikeTest {
  11. @Test
  12. public void passesFilter_valueIsNotStringType_shouldFail() {
  13. Like like = new Like("test", "%foo%");
  14. Item item = new PropertysetItem();
  15. item.addItemProperty("test", new ObjectProperty<Integer>(5));
  16. assertFalse(like.passesFilter("id", item));
  17. }
  18. @Test
  19. public void passesFilter_containsLikeQueryOnStringContainingValue_shouldSucceed() {
  20. Like like = new Like("test", "%foo%");
  21. Item item = new PropertysetItem();
  22. item.addItemProperty("test", new ObjectProperty<String>("asdfooghij"));
  23. assertTrue(like.passesFilter("id", item));
  24. }
  25. @Test
  26. public void passesFilter_containsLikeQueryOnStringContainingValueCaseInsensitive_shouldSucceed() {
  27. Like like = new Like("test", "%foo%");
  28. like.setCaseSensitive(false);
  29. Item item = new PropertysetItem();
  30. item.addItemProperty("test", new ObjectProperty<String>("asdfOOghij"));
  31. assertTrue(like.passesFilter("id", item));
  32. }
  33. @Test
  34. public void passesFilter_containsLikeQueryOnStringContainingValueConstructedCaseInsensitive_shouldSucceed() {
  35. Like like = new Like("test", "%foo%", false);
  36. Item item = new PropertysetItem();
  37. item.addItemProperty("test", new ObjectProperty<String>("asdfOOghij"));
  38. assertTrue(like.passesFilter("id", item));
  39. }
  40. @Test
  41. public void passesFilter_containsLikeQueryOnStringNotContainingValue_shouldFail() {
  42. Like like = new Like("test", "%foo%");
  43. Item item = new PropertysetItem();
  44. item.addItemProperty("test", new ObjectProperty<String>("asdbarghij"));
  45. assertFalse(like.passesFilter("id", item));
  46. }
  47. @Test
  48. public void passesFilter_containsLikeQueryOnStringExactlyEqualToValue_shouldSucceed() {
  49. Like like = new Like("test", "%foo%");
  50. Item item = new PropertysetItem();
  51. item.addItemProperty("test", new ObjectProperty<String>("foo"));
  52. assertTrue(like.passesFilter("id", item));
  53. }
  54. @Test
  55. public void passesFilter_containsLikeQueryOnStringEqualToValueMinusOneCharAtTheEnd_shouldFail() {
  56. Like like = new Like("test", "%foo%");
  57. Item item = new PropertysetItem();
  58. item.addItemProperty("test", new ObjectProperty<String>("fo"));
  59. assertFalse(like.passesFilter("id", item));
  60. }
  61. @Test
  62. public void passesFilter_beginsWithLikeQueryOnStringBeginningWithValue_shouldSucceed() {
  63. Like like = new Like("test", "foo%");
  64. Item item = new PropertysetItem();
  65. item.addItemProperty("test", new ObjectProperty<String>("foobar"));
  66. assertTrue(like.passesFilter("id", item));
  67. }
  68. @Test
  69. public void passesFilter_beginsWithLikeQueryOnStringNotBeginningWithValue_shouldFail() {
  70. Like like = new Like("test", "foo%");
  71. Item item = new PropertysetItem();
  72. item.addItemProperty("test", new ObjectProperty<String>("barfoo"));
  73. assertFalse(like.passesFilter("id", item));
  74. }
  75. @Test
  76. public void passesFilter_endsWithLikeQueryOnStringEndingWithValue_shouldSucceed() {
  77. Like like = new Like("test", "%foo");
  78. Item item = new PropertysetItem();
  79. item.addItemProperty("test", new ObjectProperty<String>("barfoo"));
  80. assertTrue(like.passesFilter("id", item));
  81. }
  82. @Test
  83. public void passesFilter_endsWithLikeQueryOnStringNotEndingWithValue_shouldFail() {
  84. Like like = new Like("test", "%foo");
  85. Item item = new PropertysetItem();
  86. item.addItemProperty("test", new ObjectProperty<String>("foobar"));
  87. assertFalse(like.passesFilter("id", item));
  88. }
  89. @Test
  90. public void passesFilter_startsWithAndEndsWithOnMatchingValue_shouldSucceed() {
  91. Like like = new Like("test", "foo%bar");
  92. Item item = new PropertysetItem();
  93. item.addItemProperty("test", new ObjectProperty<String>("fooASDFbar"));
  94. assertTrue(like.passesFilter("id", item));
  95. }
  96. @Test
  97. public void appliesToProperty_valueIsProperty_shouldBeTrue() {
  98. Like like = new Like("test", "%foo");
  99. assertTrue(like.appliesToProperty("test"));
  100. }
  101. @Test
  102. public void appliesToProperty_valueIsNotProperty_shouldBeFalse() {
  103. Like like = new Like("test", "%foo");
  104. assertFalse(like.appliesToProperty("bar"));
  105. }
  106. @Test
  107. public void equals_sameInstances_shouldBeTrue() {
  108. Like like1 = new Like("test", "%foo");
  109. Like like2 = like1;
  110. assertTrue(like1.equals(like2));
  111. }
  112. @Test
  113. public void equals_twoEqualInstances_shouldBeTrue() {
  114. Like like1 = new Like("test", "foo");
  115. Like like2 = new Like("test", "foo");
  116. assertTrue(like1.equals(like2));
  117. }
  118. @Test
  119. public void equals_differentValues_shouldBeFalse() {
  120. Like like1 = new Like("test", "foo");
  121. Like like2 = new Like("test", "bar");
  122. assertFalse(like1.equals(like2));
  123. }
  124. @Test
  125. public void equals_differentProperties_shouldBeFalse() {
  126. Like like1 = new Like("foo", "test");
  127. Like like2 = new Like("bar", "test");
  128. assertFalse(like1.equals(like2));
  129. }
  130. @Test
  131. public void equals_differentPropertiesAndValues_shouldBeFalse() {
  132. Like like1 = new Like("foo", "bar");
  133. Like like2 = new Like("baz", "zomg");
  134. assertFalse(like1.equals(like2));
  135. }
  136. @Test
  137. public void equals_differentClasses_shouldBeFalse() {
  138. Like like1 = new Like("foo", "bar");
  139. Object obj = new Object();
  140. assertFalse(like1.equals(obj));
  141. }
  142. @Test
  143. public void equals_bothHaveNullProperties_shouldBeTrue() {
  144. Like like1 = new Like(null, "foo");
  145. Like like2 = new Like(null, "foo");
  146. assertTrue(like1.equals(like2));
  147. }
  148. @Test
  149. public void equals_bothHaveNullValues_shouldBeTrue() {
  150. Like like1 = new Like("foo", null);
  151. Like like2 = new Like("foo", null);
  152. assertTrue(like1.equals(like2));
  153. }
  154. @Test
  155. public void equals_onePropertyIsNull_shouldBeFalse() {
  156. Like like1 = new Like(null, "bar");
  157. Like like2 = new Like("foo", "baz");
  158. assertFalse(like1.equals(like2));
  159. }
  160. @Test
  161. public void equals_oneValueIsNull_shouldBeFalse() {
  162. Like like1 = new Like("foo", null);
  163. Like like2 = new Like("baz", "bar");
  164. assertFalse(like1.equals(like2));
  165. }
  166. @Test
  167. public void hashCode_equalInstances_shouldBeEqual() {
  168. Like like1 = new Like("test", "foo");
  169. Like like2 = new Like("test", "foo");
  170. assertEquals(like1.hashCode(), like2.hashCode());
  171. }
  172. @Test
  173. public void hashCode_differentPropertiesAndValues_shouldNotEqual() {
  174. Like like1 = new Like("foo", "bar");
  175. Like like2 = new Like("baz", "zomg");
  176. assertTrue(like1.hashCode() != like2.hashCode());
  177. }
  178. }