package com.gisgraphy.domain.geoloc.entity; import net.sf.jstester.util.Assert; import org.junit.Test; import com.gisgraphy.helper.GeolocHelper; public class HouseNumberTest { @Test public void testConstructorPointNumber(){ HouseNumber houseNumber = new HouseNumber("foo",GeolocHelper.createPoint(3D, 4D)); Assert.assertEquals("foo", houseNumber.getNumber()); Assert.assertNotNull(houseNumber.getLocation()); } @Test(expected=IllegalArgumentException.class) public void testConstructorPointNumber_NullNumber(){ new HouseNumber(null,GeolocHelper.createPoint(3D, 4D)); } @Test(expected=IllegalArgumentException.class) public void testConstructorPointNumber_EmptyNumber(){ new HouseNumber("",GeolocHelper.createPoint(3D, 4D)); } @Test(expected=IllegalArgumentException.class) public void testConstructorPointNumber_NullLocation(){ new HouseNumber("foo",null); } @Test public void testEquals() { HouseNumber hn1 = new HouseNumber(); OpenStreetMap street = new OpenStreetMap(); street.setId(1L); hn1.setNumber("1"); hn1.setStreet(street); hn1.setId(1L); HouseNumber same = new HouseNumber(); same.setStreet(street); same.setNumber("1"); Assert.assertFalse("same number and street=>not equals but same",hn1.equals(same)); HouseNumber hnNotSameNumber = new HouseNumber(); hnNotSameNumber.setStreet(street); hnNotSameNumber.setNumber("2"); Assert.assertFalse("not same number=>not equals",hn1.equals(hnNotSameNumber)); Long openstreetmapId=1L; //now we put the same openstreetmapid hn1.setOpenstreetmapId(openstreetmapId); hnNotSameNumber.setOpenstreetmapId(openstreetmapId); Assert.assertFalse("same openstreetmapId=>equals",hn1.equals(hnNotSameNumber)); HouseNumber hnNotSameStreet = new HouseNumber(); OpenStreetMap street2 = new OpenStreetMap(); street2.setId(2L); hnNotSameStreet.setNumber("1"); hnNotSameStreet.setStreet(street2); Assert.assertFalse("not same street=>not equals",hn1.equals(hnNotSameStreet)); //now we put the same openstreetmapid hn1.setOpenstreetmapId(openstreetmapId); hnNotSameStreet.setOpenstreetmapId(openstreetmapId); Assert.assertFalse("same openstreetmapId=>not equals",hn1.equals(hnNotSameStreet)); //test when name is not the same and number is not null HouseNumber hn3 = new HouseNumber(); hn3.setNumber("1"); hn3.setName("name"); hn3.setStreet(street); HouseNumber hn4 = new HouseNumber(); hn4.setNumber("1"); hn4.setStreet(street); Assert.assertTrue("name should not impact equals when number is not null",hn4.equals(hn3)); //now we put the same openstreetmapid hn4.setOpenstreetmapId(openstreetmapId); hn3.setOpenstreetmapId(openstreetmapId); Assert.assertTrue("same openstreetmapId=>equals",hn4.equals(hn3)); //if number is null, they should have the same street and name HouseNumber hnWithoutNumber = new HouseNumber(); hnWithoutNumber.setName("name"); hnWithoutNumber.setStreet(street); HouseNumber hnWithoutNumberButSameName = new HouseNumber(); hnWithoutNumberButSameName.setName("name"); hnWithoutNumberButSameName.setStreet(street); Assert.assertTrue("number is null, name should be checked",hnWithoutNumber.is_same(hnWithoutNumberButSameName)); HouseNumber hnWithoutNumberDifferentName = new HouseNumber(); hnWithoutNumberDifferentName.setName("differentName"); hnWithoutNumberDifferentName.setStreet(street); Assert.assertFalse("number is null, name should be checked",hnWithoutNumber.is_same(hnWithoutNumberDifferentName)); //now we put the same openstreetmapid hnWithoutNumber.setOpenstreetmapId(openstreetmapId); hnWithoutNumberDifferentName.setOpenstreetmapId(openstreetmapId); Assert.assertTrue("same openstreetmapId=>equals",hnWithoutNumberDifferentName.equals(hnWithoutNumber)); } @Test public void testIs_Same() { HouseNumber hn1 = new HouseNumber(); OpenStreetMap street = new OpenStreetMap(); street.setId(1L); hn1.setNumber("1"); hn1.setStreet(street); HouseNumber hn2 = new HouseNumber(); hn2.setStreet(street); hn2.setNumber("1"); HouseNumber hnNotSameNumber = new HouseNumber(); hnNotSameNumber.setStreet(street); hnNotSameNumber.setNumber("2"); Assert.assertFalse("not same number=>not equals",hn1.is_same(hnNotSameNumber)); HouseNumber hnNotSameStreet = new HouseNumber(); OpenStreetMap street2 = new OpenStreetMap(); street2.setId(2L); hnNotSameStreet.setNumber("1"); hnNotSameStreet.setStreet(street2); Assert.assertFalse("not same street=>not equals",hn1.is_same(hnNotSameStreet)); //test when name is not the same and number is not null HouseNumber hn3 = new HouseNumber(); hn3.setNumber("1"); hn3.setName("name"); hn3.setStreet(street); HouseNumber hn4 = new HouseNumber(); hn4.setNumber("1"); hn4.setStreet(street); Assert.assertTrue("name should not impact equals when number is not null",hn4.is_same(hn3)); //if number is null, they should have the same street and name HouseNumber hnWithoutNumber = new HouseNumber(); hnWithoutNumber.setName("name"); hnWithoutNumber.setStreet(street); HouseNumber hnWithoutNumberButSameName = new HouseNumber(); hnWithoutNumberButSameName.setName("name"); hnWithoutNumberButSameName.setStreet(street); Assert.assertTrue("number is null, name should be checked",hnWithoutNumber.is_same(hnWithoutNumberButSameName)); HouseNumber hnWithoutNumberDifferentName = new HouseNumber(); hnWithoutNumberDifferentName.setName("differentName"); hnWithoutNumberDifferentName.setStreet(street); Assert.assertFalse("number is null, name should be checked",hnWithoutNumber.is_same(hnWithoutNumberDifferentName)); } }