/*
* Copyright 2012-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.solr.core.convert;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;
import org.springframework.data.geo.Distance;
import org.springframework.data.geo.Metrics;
import org.springframework.data.solr.core.convert.GeoConverterTests.DistanceConverterTests;
import org.springframework.data.solr.core.convert.GeoConverterTests.PointConverterTests;
import org.springframework.data.solr.core.geo.GeoConverters;
import org.springframework.data.solr.core.geo.Point;
/**
* @author Christoph Strobl
*/
@RunWith(Suite.class)
@SuiteClasses({ DistanceConverterTests.class, PointConverterTests.class })
public class GeoConverterTests {
public static class DistanceConverterTests {
@Test
public void testConvertDistanceToStringWithNull() {
Assert.assertNull(GeoConverters.DistanceToStringConverter.INSTANCE.convert(null));
}
@Test
public void testConvertDistanceToString() {
Assert.assertEquals("5.0", GeoConverters.DistanceToStringConverter.INSTANCE.convert(new Distance(5)));
}
@Test
public void testConvertMilesDistanceToString() {
Assert.assertEquals("1.609344",
GeoConverters.DistanceToStringConverter.INSTANCE.convert(new Distance(1, Metrics.MILES)));
}
@Test
public void testConvertDistanceWithNullUnitToString() {
Assert.assertEquals("1.0", GeoConverters.DistanceToStringConverter.INSTANCE.convert(new Distance(1, null)));
}
}
public static class PointConverterTests {
@Test
public void testConvertPointToStringWithNull() {
Assert.assertNull(GeoConverters.Point3DToStringConverter.INSTANCE.convert(null));
}
@Test
public void testConvertPointXYToString() {
Assert.assertEquals("48.303056,14.290556",
GeoConverters.Point3DToStringConverter.INSTANCE.convert(new Point(48.303056, 14.290556)));
}
@Test
public void testConvertPointXYToStringWithNegativeValue() {
Assert.assertEquals("45.17614,-93.87341",
GeoConverters.Point3DToStringConverter.INSTANCE.convert(new Point(45.17614, -93.87341)));
}
@Test
public void testConvertPointXYZToString() {
Assert.assertEquals("48.303056,14.290556,12.78",
GeoConverters.Point3DToStringConverter.INSTANCE.convert(new Point(48.303056, 14.290556, 12.78)));
}
@Test
public void testConvertPointXYZToStringWithNegativeValue() {
Assert.assertEquals("45.17614,-93.87341,-12.78",
GeoConverters.Point3DToStringConverter.INSTANCE.convert(new Point(45.17614, -93.87341, -12.78)));
}
@Test // DATASOLR-307
public void shouldConvertYCoordWithZeroScaleCorrectly() {
Assert.assertEquals("53.549999,10.0",
GeoConverters.Point2DToStringConverter.INSTANCE.convert(new Point(53.549999, 10.000000)));
}
@Test // DATASOLR-307
public void shouldConvertXCoordWithZeroScaleCorrectly() {
Assert.assertEquals("10.0,53.549999",
GeoConverters.Point2DToStringConverter.INSTANCE.convert(new Point(10.000000, 53.549999)));
}
@Test // DATASOLR-307
public void shouldConvertZCoordWithZeroScaleCorrectly() {
Assert.assertEquals("123.456,53.549999,10.0", GeoConverters.Point3DToStringConverter.INSTANCE
.convert(new org.springframework.data.solr.core.geo.Point(123.456, 53.549999, 10.00)));
}
@Test // DATASOLR-307
public void shouldConvertXYZCoordWithZeroScaleCorrectly() {
Assert.assertEquals("123.0,456.0,789.0", GeoConverters.Point3DToStringConverter.INSTANCE
.convert(new org.springframework.data.solr.core.geo.Point(123, 456, 789)));
}
}
}