public void GetEcadData_1200003223_ReturnsValidResponse()
        {
            const int ecadId = 1200003223;
            var autoaddressClient = new AutoaddressClient();
            var request = new Autoaddress2_0.Model.GetEcadData.Request(ecadId);

            var response = autoaddressClient.GetEcadData(request);

            Assert.NotNull(response);
            Assert.AreEqual(Autoaddress2_0.Model.GetEcadData.ReturnCode.EcadIdValid, response.Result);
            Assert.AreEqual(ecadId, response.EcadId);
            Assert.AreEqual(3100, response.AddressTypeId);
            Assert.IsNull(response.EircodeInfo);
            Assert.NotNull(response.PostalAddress);
            Assert.NotNull(response.PostalAddress.English);
            Assert.AreEqual(2, response.PostalAddress.English.Length);
            Assert.AreEqual("DAME STREET", response.PostalAddress.English[0]);
            Assert.AreEqual("DUBLIN 2", response.PostalAddress.English[1]);
            Assert.NotNull(response.PostalAddress.Irish);
            Assert.AreEqual(2, response.PostalAddress.Irish.Length);
            Assert.AreEqual("SRÁID AN DÁMA", response.PostalAddress.Irish[0]);
            Assert.AreEqual("BAILE ÁTHA CLIATH 2", response.PostalAddress.Irish[1]);
            Assert.IsNotNull(response.AdministrativeInfo);
            Assert.AreEqual(ecadId, response.AdministrativeInfo.EcadId);
            Assert.AreEqual(268140, response.AdministrativeInfo.DedId);
            Assert.AreEqual(false, response.AdministrativeInfo.Gaeltacht);
            Assert.AreEqual(29, response.AdministrativeInfo.LaId);
            Assert.IsNull(response.AdministrativeInfo.SmallAreaId);
            Assert.IsNull(response.AdministrativeInfo.TownlandId);
            Assert.AreEqual(1001000025, response.AdministrativeInfo.CountyId);
            Assert.IsNull(response.BuildingInfo);
            Assert.IsNull(response.OrganisationInfo);
            Assert.NotNull(response.SpatialInfo);
            Assert.AreEqual(ecadId, response.SpatialInfo.EcadId);
            Assert.NotNull(response.SpatialInfo.Etrs89);
            Assert.NotNull(response.SpatialInfo.Etrs89.Location);
            Assert.Greater(response.SpatialInfo.Etrs89.Location.Latitude, 0);
            Assert.Less(response.SpatialInfo.Etrs89.Location.Longitude, 0);
            Assert.NotNull(response.SpatialInfo.Etrs89.BoundingBox);
            Assert.NotNull(response.SpatialInfo.Etrs89.BoundingBox.Min);
            Assert.NotNull(response.SpatialInfo.Etrs89.BoundingBox.Max);
            Assert.Greater(response.SpatialInfo.Etrs89.BoundingBox.Min.Latitude, 0);
            Assert.Less(response.SpatialInfo.Etrs89.BoundingBox.Min.Longitude, 0);
            Assert.Greater(response.SpatialInfo.Etrs89.BoundingBox.Max.Latitude, 0);
            Assert.Less(response.SpatialInfo.Etrs89.BoundingBox.Max.Longitude, 0);
            Assert.NotNull(response.SpatialInfo.Ing);
            Assert.NotNull(response.SpatialInfo.Etrs89.Location);
            Assert.Greater(response.SpatialInfo.Etrs89.Location.Latitude, 0);
            Assert.Less(response.SpatialInfo.Etrs89.Location.Longitude, 0);
            Assert.NotNull(response.SpatialInfo.Ing);
            Assert.NotNull(response.SpatialInfo.Ing.BoundingBox);
            Assert.NotNull(response.SpatialInfo.Ing.BoundingBox.Min);
            Assert.NotNull(response.SpatialInfo.Ing.BoundingBox.Max);
            Assert.Greater(response.SpatialInfo.Ing.BoundingBox.Min.Easting, 0);
            Assert.Greater(response.SpatialInfo.Ing.BoundingBox.Min.Northing, 0);
            Assert.Greater(response.SpatialInfo.Ing.BoundingBox.Max.Easting, 0);
            Assert.Greater(response.SpatialInfo.Ing.BoundingBox.Max.Northing, 0);
            Assert.NotNull(response.SpatialInfo.Itm);
            Assert.NotNull(response.SpatialInfo.Itm.BoundingBox);
            Assert.NotNull(response.SpatialInfo.Itm.BoundingBox.Min);
            Assert.NotNull(response.SpatialInfo.Itm.BoundingBox.Max);
            Assert.Greater(response.SpatialInfo.Itm.BoundingBox.Min.Easting, 0);
            Assert.Greater(response.SpatialInfo.Itm.BoundingBox.Min.Northing, 0);
            Assert.Greater(response.SpatialInfo.Itm.BoundingBox.Max.Easting, 0);
            Assert.Greater(response.SpatialInfo.Itm.BoundingBox.Max.Northing, 0);
            Assert.AreEqual("3", response.SpatialInfo.SpatialAccuracy);
            Assert.IsNotNull(response.RelatedEcadIds);
        }
        public async Task GetEcadDataAsync_1701984269_ReturnsValidResponse()
        {
            const int ecadId = 1701984269;
            var autoaddressClient = new AutoaddressClient();
            var request = new Autoaddress2_0.Model.GetEcadData.Request(ecadId);

            var response = await autoaddressClient.GetEcadDataAsync(request);

            Assert.NotNull(response);
            Assert.AreEqual(Autoaddress2_0.Model.GetEcadData.ReturnCode.EcadIdValid, response.Result);
            Assert.AreEqual(ecadId, response.EcadId);
            Assert.AreEqual(2150, response.AddressTypeId);
            Assert.NotNull(response.EircodeInfo);
            Assert.AreEqual(ecadId, response.EircodeInfo.EcadId);
            Assert.AreEqual("A86VC04", response.EircodeInfo.Eircode);
            Assert.NotNull(response.PostalAddress);
            Assert.NotNull(response.PostalAddress.English);
            Assert.AreEqual(4, response.PostalAddress.English.Length);
            Assert.AreEqual("8 SILVER BIRCHES", response.PostalAddress.English[0]);
            Assert.AreEqual("MILLFARM", response.PostalAddress.English[1]);
            Assert.AreEqual("DUNBOYNE", response.PostalAddress.English[2]);
            Assert.AreEqual("CO. MEATH", response.PostalAddress.English[3]);
            Assert.NotNull(response.PostalAddress.Irish);
            Assert.AreEqual(4, response.PostalAddress.Irish.Length);
            Assert.AreEqual("8 NA BEITHEANNA GEALA", response.PostalAddress.Irish[0]);
            Assert.AreEqual("FEIRM AN MHUILINN", response.PostalAddress.Irish[1]);
            Assert.AreEqual("DÚN BÚINNE", response.PostalAddress.Irish[2]);
            Assert.AreEqual("CO. NA MÍ", response.PostalAddress.Irish[3]);
            Assert.NotNull(response.AdministrativeInfo);
            Assert.AreEqual(1400247786, response.AdministrativeInfo.EcadId);
            Assert.AreEqual(16, response.AdministrativeInfo.LaId);
            Assert.AreEqual(167029, response.AdministrativeInfo.DedId);
            Assert.AreEqual(14588, response.AdministrativeInfo.SmallAreaId);
            Assert.AreEqual(160648, response.AdministrativeInfo.TownlandId);
            Assert.AreEqual(1001000020, response.AdministrativeInfo.CountyId);
            Assert.AreEqual(false, response.AdministrativeInfo.Gaeltacht);
            Assert.NotNull(response.BuildingInfo);
            Assert.AreEqual(1400247786, response.BuildingInfo.EcadId);
            Assert.AreEqual(1, response.BuildingInfo.BuildingTypeId);
            Assert.AreEqual(false, response.BuildingInfo.UnderConstruction);
            Assert.AreEqual("R", response.BuildingInfo.BuildingUse);
            Assert.AreEqual(false, response.BuildingInfo.Vacant);
            Assert.AreEqual(null, response.BuildingInfo.HolidayHome);
            Assert.IsNull(response.OrganisationInfo);
            Assert.NotNull(response.SpatialInfo);
            Assert.NotNull(response.SpatialInfo.Etrs89);
            Assert.NotNull(response.SpatialInfo.Etrs89.Location);
            Assert.Greater(response.SpatialInfo.Etrs89.Location.Latitude, 0);
            Assert.Less(response.SpatialInfo.Etrs89.Location.Longitude, 0);
            Assert.IsNull(response.SpatialInfo.Etrs89.BoundingBox);
            Assert.NotNull(response.SpatialInfo.Ing);
            Assert.NotNull(response.SpatialInfo.Ing.Location);
            Assert.Greater(response.SpatialInfo.Ing.Location.Easting, 0);
            Assert.Greater(response.SpatialInfo.Ing.Location.Northing, 0);
            Assert.IsNull(response.SpatialInfo.Ing.BoundingBox);
            Assert.NotNull(response.SpatialInfo.Itm);
            Assert.NotNull(response.SpatialInfo.Itm.Location);
            Assert.Greater(response.SpatialInfo.Itm.Location.Easting, 0);
            Assert.Greater(response.SpatialInfo.Itm.Location.Northing, 0);
            Assert.IsNull(response.SpatialInfo.Itm.BoundingBox);
            Assert.AreEqual("3", response.SpatialInfo.SpatialAccuracy);
            Assert.IsNotNull(response.RelatedEcadIds);
            Assert.IsNotNull(response.RelatedEcadIds.GeographicCountyEcadIds);
            Assert.AreEqual(1, response.RelatedEcadIds.GeographicCountyEcadIds.Length);
            Assert.AreEqual(1001000020, response.RelatedEcadIds.GeographicCountyEcadIds[0]);
        }
        public void GetEcadData_1701984269ThenSelectSelfLink_ReturnsValidResponses()
        {
            const int ecadId = 1701984269;
            var autoaddressClient = new AutoaddressClient();
            var request = new Autoaddress2_0.Model.GetEcadData.Request(ecadId);

            var firstResponse = autoaddressClient.GetEcadData(request);

            Assert.NotNull(firstResponse);
            Assert.NotNull(firstResponse.Links);
            Assert.Greater(firstResponse.Links.Length, 0);
            var link = firstResponse.Links.OfType<Model.GetEcadData.Link>().First();

            var secondResponse = autoaddressClient.GetEcadData(link);

            Assert.NotNull(secondResponse);
            Assert.AreEqual(firstResponse.Result, secondResponse.Result);
            Assert.AreEqual(firstResponse.EcadId, secondResponse.EcadId);
        }