public void GetAdDataConsistencyErrors_Ad_NoCity_ReturnsDictionaryWithCityError()
        {
            // Given
            AdDataConsistencyServices service = new AdDataConsistencyServices();
            AdvancedAdCreateModel model = new AdvancedAdCreateModel()
            {
                Body = "My Body",
                Title = "My Title",
                SelectedCategoryId = 1,
                Name = "My Name",
                Email = "*****@*****.**",
                Password = "******",
                PasswordConfirm = "Password"
            };

            // When
            IDictionary<string, string> actual = service.GetAdDataConsistencyErrors(model);

            // Then
            Assert.AreEqual(1, actual.Count);
            Assert.IsTrue(actual.Keys.Contains("SelectedCityId"));
        }
        public void GetAdDataConsistencyErrors_MotorBoatEngineAdAd_NoSelectedMotorBoatEngineTypeId_ReturnsDictionaryWithSelectedMotorBoatEngineTypeIdError()
        {
            // Given
            AdDataConsistencyServices service = new AdDataConsistencyServices();
            AdvancedAdCreateModel model = new AdvancedAdCreateModel()
            {
                Body = "My Body",
                Title = "My Title",
                SelectedCityId = 1,
                SelectedCategoryId = 1,
                Name = "My Name",
                Email = "*****@*****.**",
                Hp = 500,
                SelectedYearId = 2011,
                Type = AdTypeEnum.MotorBoatEngineAd,
                Password = "******",
                PasswordConfirm = "Password"
            };

            // When
            IDictionary<string, string> actual = service.GetAdDataConsistencyErrors(model);

            // Then
            Assert.AreEqual(1, actual.Count);
            Assert.IsTrue(actual.Keys.Contains("SelectedMotorBoatEngineTypeId"));
        }
        public void GetAdDataConsistencyErrors_MotorBoatAdAd_NoError_ReturnsEmptyDictionary()
        {
            // Given
            AdDataConsistencyServices service = new AdDataConsistencyServices();
            AdvancedAdCreateModel model = new AdvancedAdCreateModel()
            {
                Body = "My Body",
                Title = "My Title",
                SelectedCityId = 1,
                SelectedCategoryId = 1,
                Name = "My Name",
                Email = "*****@*****.**",
                SelectedMotorBoatTypeId = 1,
                Length = 5,
                SelectedYearId = 2011,
                SelectedMotorTypeId = 1,
                Hp=200,
                Type = AdTypeEnum.MotorBoatAd,
                Password = "******",
                PasswordConfirm = "Password"
            };

            // When
            IDictionary<string, string> actual = service.GetAdDataConsistencyErrors(model);

            // Then
            Assert.AreEqual(0, actual.Count);
        }
        public void GetAdDataConsistencyErrors_CarAd_MissingFuel_ReturnsDictionaryWithFuelError()
        {
            // Given
            AdDataConsistencyServices service = new AdDataConsistencyServices();
            AdvancedAdCreateModel model = new AdvancedAdCreateModel()
            {
                Body = "My Body",
                Title = "My Title",
                SelectedCityId = 1,
                SelectedCategoryId = 1,
                Name = "My Name",
                Email = "*****@*****.**",
                SelectedCarBrandId = 1,
                SelectedYearId = 2008,
                Km = 55000,
                Type = AdTypeEnum.CarAd,
                Password = "******",
                PasswordConfirm = "Password"
            };

            // When
            IDictionary<string, string> actual = service.GetAdDataConsistencyErrors(model);

            // Then
            Assert.AreEqual(1, actual.Count);
            Assert.IsTrue(actual.Keys.Contains("SelectedFuelId"));
        }
        public void GetAdDataConsistencyErrors_MotoAd_NegativeKilometer_ReturnsDictionaryWithKilometerError()
        {
            // Given
            AdDataConsistencyServices service = new AdDataConsistencyServices();
            AdvancedAdCreateModel model = new AdvancedAdCreateModel()
            {
                Body = "My Body",
                Title = "My Title",
                SelectedCityId = 1,
                SelectedCategoryId = 1,
                Name = "My Name",
                Email = "*****@*****.**",
                SelectedMotoBrandId = 1,
                SelectedYearId = 2008,
                EngineSize = 600,
                Km = -55000,
                Type = AdTypeEnum.MotoAd,
                Password = "******",
                PasswordConfirm = "Password"
            };

            // When
            IDictionary<string, string> actual = service.GetAdDataConsistencyErrors(model);

            // Then
            Assert.AreEqual(1, actual.Count);
            Assert.IsTrue(actual.Keys.Contains("Km"));
        }
        public void IsEmailValid_UnValid_Email_Returns_False()
        {
            // Given
            AdDataConsistencyServices service = new AdDataConsistencyServices();
            String Email = "toto";

            // When
            Boolean actual = service.IsEmailValid(Email);

            // Then
            Assert.AreEqual(false, actual);
        }
        public void IsEmailValid_Valid_Email_Returns_True()
        {
            // Given
            AdDataConsistencyServices service = new AdDataConsistencyServices();
            String Email = "*****@*****.**";

            // When
            Boolean actual = service.IsEmailValid(Email);

            // Then
            Assert.AreEqual(true, actual);
        }
        public void IsEmailValid_Null_Email_Returns_False()
        {
            // Given
            AdDataConsistencyServices service = new AdDataConsistencyServices();

            // When
            Boolean actual = service.IsEmailValid(null);

            // Then
            Assert.AreEqual(false, actual);
        }
        public void GetAdDataConsistencyErrors_SailingBoatAdAd_NegativeLength_ReturnsDictionaryWithoLengthErrors()
        {
            // Given
            AdDataConsistencyServices service = new AdDataConsistencyServices();
            AdvancedAdCreateModel model = new AdvancedAdCreateModel()
            {
                Body = "My Body",
                Title = "My Title",
                SelectedCityId = 1,
                SelectedCategoryId = 1,
                Name = "My Name",
                Email = "*****@*****.**",
                SelectedSailingBoatTypeId = 1,
                Length = -5,
                SelectedYearId = 2011,
                SelectedHullTypeId = 1,
                Type = AdTypeEnum.SailingBoatAd,
                Password = "******",
                PasswordConfirm = "Password"
            };

            // When
            IDictionary<string, string> actual = service.GetAdDataConsistencyErrors(model);

            // Then
            Assert.AreEqual(1, actual.Count);
            Assert.IsTrue(actual.Keys.Contains("Length"));
        }
        public void GetAdDataConsistencyErrors_RealEstateAd_NoSurfaceArea_ReturnsDictionaryWithSurfaceAreaError()
        {
            // Given
            AdDataConsistencyServices service = new AdDataConsistencyServices();
            AdvancedAdCreateModel model = new AdvancedAdCreateModel()
            {
                Body = "My Body",
                Title = "My Title",
                SelectedCityId = 1,
                SelectedCategoryId = 1,
                Name = "My Name",
                Email = "*****@*****.**",
                RoomNb = 5,
                SelectedRealEstateTypeId = 1,
                IsFurnished = true,
                Type = AdTypeEnum.RealEstateAd,
                Password = "******",
                PasswordConfirm = "Password"
            };

            // When
            IDictionary<string, string> actual = service.GetAdDataConsistencyErrors(model);

            // Then
            Assert.AreEqual(1, actual.Count);
            Assert.IsTrue(actual.Keys.Contains("SurfaceArea"));
        }
        public void GetAdDataConsistencyErrors_Ad_NoError_ReturnsEmptyDictionary()
        {
            // Given
            AdDataConsistencyServices service = new AdDataConsistencyServices();
            AdvancedAdCreateModel model = new AdvancedAdCreateModel() {
                Body = "My Body",
                Title = "My Title",
                SelectedCityId = 1,
                SelectedCategoryId = 1,
                Name = "My Name",
                Email = "*****@*****.**",
                Password = "******",
                PasswordConfirm = "Password"
            };

            //When
            IDictionary<string, string> errors = service.GetAdDataConsistencyErrors(model);

            //Then
            Assert.AreEqual(0, errors.Count);
        }
        public void GetAdDataConsistencyErrors_OtherVehicleAd__NoKiliometer_ReturnsDictionaryWithKmError()
        {
            // Given
            AdDataConsistencyServices service = new AdDataConsistencyServices();
            AdvancedAdCreateModel model = new AdvancedAdCreateModel()
            {
                Body = "My Body",
                Title = "My Title",
                SelectedCityId = 1,
                SelectedCategoryId = 1,
                Name = "My Name",
                Email = "*****@*****.**",
                SelectedYearId = 2008,
                SelectedFuelId = 1,
                Type = AdTypeEnum.OtherVehiculeAd,
                Password = "******",
                PasswordConfirm = "Password"
            };
            // When
            IDictionary<string, string> actual = service.GetAdDataConsistencyErrors(model);

            // Then
            Assert.AreEqual(1, actual.Count);
            Assert.IsTrue(actual.Keys.Contains("Km"));
        }