public async Task TestAddressEditChild_StateExceedsMaxLengthOf2()
        {
            var address          = BuildAddress();
            var addressEditChild = await AddressEditChild.GetAddressEditChild(address);

            addressEditChild.State = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor ";

            Assert.False(addressEditChild.IsValid);
            Assert.Equal("The field State must be a string or array type with a maximum length of '2'.", addressEditChild.BrokenRulesCollection[0].Description);
        }
        public async Task TestAddressEditChild_PostCodeExceedsMaxLengthOf9()
        {
            var address          = BuildAddress();
            var addressEditChild = await AddressEditChild.GetAddressEditChild(address);

            addressEditChild.PostCode = "Lorem ipsum dolor sit amet";

            Assert.False(addressEditChild.IsValid);
            Assert.Equal("The field PostCode must be a string or array type with a maximum length of '9'.",
                         addressEditChild.BrokenRulesCollection[0].Description);
        }
        public async Task TestAddressEditChild_CityRequired()
        {
            var address          = BuildAddress();
            var addressEditChild = await AddressEditChild.GetAddressEditChild(address);

            var isObjectValidInit = addressEditChild.IsValid;

            addressEditChild.City = string.Empty;

            Assert.True(isObjectValidInit);
            Assert.False(addressEditChild.IsValid);
            Assert.Equal("The City field is required.", addressEditChild.BrokenRulesCollection[0].Description);
        }
        public async Task TestAddressEditChild_CityExceedsMaxLengthOf50()
        {
            var address          = BuildAddress();
            var addressEditChild = await AddressEditChild.GetAddressEditChild(address);

            addressEditChild.City = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor " +
                                    "incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis " +
                                    "nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. " +
                                    "Duis aute irure dolor in reprehenderit";

            Assert.False(addressEditChild.IsValid);
            Assert.Equal("The field City must be a string or array type with a maximum length of '50'.", addressEditChild.BrokenRulesCollection[0].Description);
        }
        public async Task TestAddressEditChild_GetAddressEditChild()
        {
            var address = BuildAddress();

            var addressEditChild = await AddressEditChild.GetAddressEditChild(address);

            Assert.NotNull(addressEditChild);
            Assert.Equal(address.Id, addressEditChild.Id);
            Assert.Equal(address.Address1, addressEditChild.Address1);
            Assert.Equal(address.Address2, addressEditChild.Address2);
            Assert.Equal(address.City, addressEditChild.City);
            Assert.Equal(address.State, addressEditChild.State);
            Assert.Equal(address.PostCode, addressEditChild.PostCode);
            Assert.Equal(address.Notes, addressEditChild.Notes);
            Assert.Equal(address.LastUpdatedBy, addressEditChild.LastUpdatedBy);
            Assert.Equal(new SmartDate(address.LastUpdatedDate), addressEditChild.LastUpdatedDate);

            Assert.True(addressEditChild.IsValid);
        }