public void OnlyTheBestRealEstateTest_NameContainsValue_ReturnsTrue()
        {
            var agencyProperty = new Property()
            {
                AgencyCode = AgencyCode.OTBRE,
                Name       = "“*Super*-High! APARTMENTS (Sydney)”",
                Address    = "32 Sir John-Young Crescent, Sydney, NSW",
            };

            var databaseProperty = new Property()
            {
                AgencyCode = AgencyCode.OTBRE,
                Name       = "Super High Apartments, Sydney",
                Address    = "32 Sir John Young Crescent, Sydney NSW",
            };

            var matchingStrategy = new OnlyTheBestRealEstateStrategy();
            var isMatch          = matchingStrategy.IsMatch(agencyProperty, databaseProperty);

            Assert.True(isMatch);
        }
        public void OnlyTheBestRealEstateTest_NameContainsNull_ThrowsArgumentException()
        {
            var agencyProperty = new Property()
            {
                AgencyCode = AgencyCode.OTBRE,
                Name       = null,
                Address    = "32 Sir John-Young Crescent, Sydney, NSW",
            };

            var databaseProperty = new Property()
            {
                AgencyCode = AgencyCode.OTBRE,
                Name       = null,
                Address    = "32 Sir John Young Crescent, Sydney NSW",
            };

            var matchingStrategy = new OnlyTheBestRealEstateStrategy();

            var ex = Assert.Throws <ArgumentException>(() => matchingStrategy.IsMatch(agencyProperty, databaseProperty));

            Assert.IsType <ArgumentException>(ex);
            Assert.Equal("Name", ex.ParamName);
        }