/* * Copyright 2016-2017 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.springframework.data.domain; import static org.assertj.core.api.Assertions.*; import static org.springframework.data.domain.ExampleMatcher.*; import org.junit.Before; import org.junit.Test; /** * Test for {@link Example}. * * @author Christoph Strobl * @author Mark Paluch * @author Oliver Gierke */ public class ExampleUnitTests { Person person; Example<Person> example; @Before public void setUp() { person = new Person(); person.firstname = "rand"; example = Example.of(person); } @Test(expected = IllegalArgumentException.class) // DATACMNS-810 public void rejectsNullProbe() { Example.of(null); } @Test // DATACMNS-810 public void retunsSampleObjectsClassAsProbeType() { assertThat(example.getProbeType()).isEqualTo(Person.class); } @Test // DATACMNS-900 public void shouldCompareUsingHashCodeAndEquals() throws Exception { Example<Person> example = Example.of(person, matching().withIgnoreCase("firstname")); Example<Person> sameAsExample = Example.of(person, matching().withIgnoreCase("firstname")); Example<Person> different = Example.of(person, matching().withMatcher("firstname", GenericPropertyMatchers.contains())); assertThat(example.hashCode()).isEqualTo(sameAsExample.hashCode()); assertThat(example.hashCode()).isNotEqualTo(different.hashCode()); assertThat(example).isEqualTo(sameAsExample); assertThat(example).isNotEqualTo(different); } static class Person { String firstname; } }