package com.lambdaworks.redis;
import static org.assertj.core.api.Assertions.*;
import java.util.Collections;
import java.util.Map;
import org.junit.Test;
/**
* @author Mark Paluch
*/
public class GeoModelTest {
@Test
public void geoWithin() throws Exception {
GeoWithin<String> sut = new GeoWithin<String>("me", 1.0, 1234L, new GeoCoordinates(1, 2));
GeoWithin<String> equalsToSut = new GeoWithin<String>("me", 1.0, 1234L, new GeoCoordinates(1, 2));
Map<GeoWithin<String>, String> map = Collections.singletonMap(sut, "value");
assertThat(map.get(equalsToSut)).isEqualTo("value");
assertThat(sut).isEqualTo(equalsToSut);
assertThat(sut.hashCode()).isEqualTo(equalsToSut.hashCode());
assertThat(sut.toString()).isEqualTo(equalsToSut.toString());
}
@Test
public void geoWithinSlightlyDifferent() throws Exception {
GeoWithin<String> sut = new GeoWithin<String>("me", 1.0, 1234L, new GeoCoordinates(1, 2));
GeoWithin<String> slightlyDifferent = new GeoWithin<String>("me", 1.0, 1234L, new GeoCoordinates(1.1, 2));
Map<GeoWithin<String>, String> map = Collections.singletonMap(sut, "value");
assertThat(map.get(slightlyDifferent)).isNull();
assertThat(sut).isNotEqualTo(slightlyDifferent);
assertThat(sut.hashCode()).isNotEqualTo(slightlyDifferent.hashCode());
assertThat(sut.toString()).isNotEqualTo(slightlyDifferent.toString());
slightlyDifferent = new GeoWithin<String>("me1", 1.0, 1234L, new GeoCoordinates(1, 2));
assertThat(sut).isNotEqualTo(slightlyDifferent);
}
@Test
public void geoWithinEmpty() throws Exception {
GeoWithin<String> sut = new GeoWithin<String>(null, null, null, null);
GeoWithin<String> equalsToSut = new GeoWithin<String>(null, null, null, null);
assertThat(sut).isEqualTo(equalsToSut);
assertThat(sut.hashCode()).isEqualTo(equalsToSut.hashCode());
}
@Test
public void geoCoordinates() throws Exception {
GeoCoordinates sut = new GeoCoordinates(1, 2);
GeoCoordinates equalsToSut = new GeoCoordinates(1, 2);
Map<GeoCoordinates, String> map = Collections.singletonMap(sut, "value");
assertThat(map.get(equalsToSut)).isEqualTo("value");
assertThat(sut).isEqualTo(equalsToSut);
assertThat(sut.hashCode()).isEqualTo(equalsToSut.hashCode());
assertThat(sut.toString()).isEqualTo(equalsToSut.toString());
}
@Test
public void geoCoordinatesSlightlyDifferent() throws Exception {
GeoCoordinates sut = new GeoCoordinates(1, 2);
GeoCoordinates slightlyDifferent = new GeoCoordinates(1.1, 2);
Map<GeoCoordinates, String> map = Collections.singletonMap(sut, "value");
assertThat(map.get(slightlyDifferent)).isNull();
assertThat(sut).isNotEqualTo(slightlyDifferent);
assertThat(sut.hashCode()).isNotEqualTo(slightlyDifferent.hashCode());
assertThat(sut.toString()).isNotEqualTo(slightlyDifferent.toString());
}
}