public void RemoveWithOutDateTest()
        {
            var city1 = new City("Moscow");

            City.AllCities.Add(city1);

            var client1 = new Client("Ivanov", "Ivan", 9271112233, city1, "Vernadskogo, 23");

            Client.AllClients.Add(client1);

            var measLimit1 = new MeasurementLimit(8, 20, 2, city1);

            MeasurementLimit.AllMeasurementLimits.Add(measLimit1);

            var meas = new MeasurementViewModel();

            meas.SelectedClient = meas.Clients.FirstOrDefault(c => c.Id == client1.Id);
            meas.SelectedLimit  = meas.Limits.FirstOrDefault(l => l.Id == measLimit1.Id);

            meas.Add();

            meas.SelectedMeasureWithoutDate = meas.MeasurementsWithoutDate.FirstOrDefault();

            meas.RemoveWithOutDate(meas.SelectedMeasureWithoutDate);

            bool isRemoved = !meas.MeasurementsWithoutDate.Any() && !meas.MeasurementsWithDate.Any();

            ClearData();

            Assert.IsTrue(isRemoved);
        }
        public void AddTest()
        {
            var city = new City("Moscow");

            City.AllCities.Add(city);

            var meas = new MeasurementViewModel();

            var client    = new Client("Ivanov", "Ivan", 9271112233, city, "Vernadskogo, 23");
            var measLimit = new MeasurementLimit(8, 20, 2, city);

            meas.Clients.Add(client);
            meas.Limits.Add(measLimit);

            meas.SelectedClient = meas.Clients.FirstOrDefault(c => c.Id == client.Id);
            meas.SelectedLimit  = meas.Limits.FirstOrDefault(l => l.Id == measLimit.Id);

            meas.Add();

            bool isMeasSave = meas.MeasurementsWithoutDate.FirstOrDefault(m => m.Client.Id == client.Id) != null;

            ClearData();

            Assert.IsTrue(isMeasSave);
        }
        public void IsSelectedMeasurementTest()
        {
            var city1 = new City("Moscow");

            City.AllCities.Add(city1);

            var client1 = new Client("Ivanov", "Ivan", 9271112233, city1, "Vernadskogo, 23");

            Client.AllClients.Add(client1);

            var measLimit1 = new MeasurementLimit(8, 20, 2, city1);

            MeasurementLimit.AllMeasurementLimits.Add(measLimit1);

            var meas = new MeasurementViewModel();

            meas.SelectedClient = meas.Clients.FirstOrDefault(c => c.Id == client1.Id);
            meas.SelectedLimit  = meas.Limits.FirstOrDefault(l => l.Id == measLimit1.Id);

            meas.Add();

            meas.SelectedDate = DateTime.Today;
            meas.SelectedMeasureWithoutDate = meas.MeasurementsWithoutDate.FirstOrDefault();

            meas.SetDate();

            meas.SelectedMeasureWithDate = null;
            meas.SelectedMeasureWithDate = meas.MeasurementsWithDate.FirstOrDefault();

            bool selected = meas.SelectedMeasureWithDate != null;

            ClearData();

            Assert.IsTrue(selected);
        }
        public void Remove(MeasurementLimit limit)
        {
            MeasurementLimits.Remove(limit);
            MeasurementLimit.AllMeasurementLimits.Remove(limit);

            SelectedItem = null;
        }
        public void Add()
        {
            GetError("BeginHour", "EndHour", "Limit", "City");

            if (Errors.Count < 1)
            {
                var limit = new MeasurementLimit(BeginHour, EndHour, Limit, City);

                MeasurementLimit.AllMeasurementLimits.Insert(0, limit);

                MeasurementLimits.Clear();
                foreach (var c in MeasurementLimit.AllMeasurementLimits)
                {
                    MeasurementLimits.Add(c);
                }

                SelectedItem = limit;
            }
            else
            {
                StringBuilder sb = new StringBuilder();
                foreach (var k in Errors.Keys)
                {
                    sb.Append($"Ошибка в поле {k}: {Errors[k]};");
                }

                Errors.Clear();

                MessageBox.Show(sb.ToString());
            }
        }
        public void FindTest()
        {
            var city1 = new City("Moscow");
            var city2 = new City("NewYork");

            City.AllCities.Add(city1);
            City.AllCities.Add(city2);

            var client1 = new Client("Ivanov", "Ivan", 9271112233, city1, "Vernadskogo, 23");
            var client2 = new Client("Shevelev", "Alex", 9271112234, city1, "Vernadskogo, 24");
            var client3 = new Client("Petrov", "Petr", 9271112235, city2, "Vernadskogo, 25");

            Client.AllClients.Add(client1);
            Client.AllClients.Add(client2);
            Client.AllClients.Add(client3);

            var measLimit1 = new MeasurementLimit(8, 20, 2, city1);
            var measLimit2 = new MeasurementLimit(8, 20, 2, city2);

            MeasurementLimit.AllMeasurementLimits.Add(measLimit1);
            MeasurementLimit.AllMeasurementLimits.Add(measLimit2);

            var meas = new MeasurementViewModel();

            meas.CityForFind = city1;

            meas.LastName = "";
            meas.Find();

            bool isFindedTwoClientsOneLimit = meas.Clients.Count() == 2 && meas.Limits.Count() == 1;

            meas.LastName = "Ivan";
            meas.Find();

            bool isFindedOneClientOneLimit = meas.Clients.Count() == 1 && meas.Limits.Count() == 1;

            meas.CityForFind = meas.AllCity;
            meas.LastName    = "";
            meas.Find();

            bool isFindedThreeClientTwoLimit = meas.Clients.Count() == 3 && meas.Limits.Count() == 2;

            ClearData();

            Assert.IsTrue(isFindedTwoClientsOneLimit && isFindedOneClientOneLimit && isFindedThreeClientTwoLimit);
        }
Esempio n. 7
0
        public void SetDateForMeasurementTest()
        {
            var city1 = new City("Moscow");

            City.AllCities.Add(city1);

            var client1 = new Client("Ivanov", "Ivan", 9271112233, city1, "Vernadskogo, 23");
            var client2 = new Client("Petrov", "Petr", 9271112232, city1, "Vernadskogo, 24");
            var client3 = new Client("Alexandrov", "Alex", 9271112231, city1, "Vernadskogo, 25");
            var client4 = new Client("Shevelev", "Turk", 9271112230, city1, "Vernadskogo, 26");

            Client.AllClients.Add(client1);
            Client.AllClients.Add(client2);
            Client.AllClients.Add(client3);
            Client.AllClients.Add(client4);

            //три лимита на данный период
            var measLimit1 = new MeasurementLimit(8, 20, 3, city1);

            MeasurementLimit.AllMeasurementLimits.Add(measLimit1);

            //устанавливаю заявки на замеры в городе
            var meas1 = new Measurement(measLimit1, client1, null);
            var meas2 = new Measurement(measLimit1, client2, null);
            var meas3 = new Measurement(measLimit1, client3, null);
            var meas4 = new Measurement(measLimit1, client4, null);

            Measurement.AllMeasurements.Add(meas1);
            Measurement.AllMeasurements.Add(meas2);
            Measurement.AllMeasurements.Add(meas3);
            Measurement.AllMeasurements.Add(meas4);
            //устанавливаю даты на замер

            bool isGoodInstance1 = meas1.SetDateForMeasurement(DateTime.Today, false);
            bool isGoodInstance2 = meas2.SetDateForMeasurement(DateTime.Today, false);
            bool isGoodInstance3 = meas3.SetDateForMeasurement(DateTime.Today, false);

            //лимиты исчерпаны на данную дату в данном городе - следующая установка даты не пройдет
            bool isBadInstance1 = !meas4.SetDateForMeasurement(DateTime.Today, false);

            ClearData();

            Assert.IsTrue(isGoodInstance1 && isGoodInstance2 && isGoodInstance3 && isBadInstance1);
        }
        public void SetDateTest()
        {
            var city1 = new City("Moscow");

            City.AllCities.Add(city1);

            var client1 = new Client("Ivanov", "Ivan", 9271112233, city1, "Vernadskogo, 23");

            Client.AllClients.Add(client1);

            var measLimit1 = new MeasurementLimit(8, 20, 2, city1);

            MeasurementLimit.AllMeasurementLimits.Add(measLimit1);

            var meas = new MeasurementViewModel();

            meas.SelectedClient = meas.Clients.FirstOrDefault(c => c.Id == client1.Id);
            meas.SelectedLimit  = meas.Limits.FirstOrDefault(l => l.Id == measLimit1.Id);

            meas.Add();

            bool isNoDate = meas.MeasurementsWithoutDate
                            .FirstOrDefault(m => m.Client.Id == client1.Id && (m.MeasurementDate == null || m.MeasurementDate == DateTime.MinValue)) != null &&
                            !meas.MeasurementsWithDate.Any();
            var date = DateTime.Today;

            meas.SelectedDate = date;
            meas.SelectedMeasureWithoutDate = meas.MeasurementsWithoutDate.FirstOrDefault();

            meas.SetDate();

            bool isYesDate = meas.MeasurementsWithDate
                             .FirstOrDefault(m => m.Client.Id == client1.Id && m.MeasurementDate == date) != null &&
                             !meas.MeasurementsWithoutDate.Any();

            ClearData();

            Assert.IsTrue(isNoDate && isYesDate);
        }
        public void SetDateWithLimitsTest()
        {
            var city1 = new City("Moscow");

            City.AllCities.Add(city1);

            var client1 = new Client("Ivanov", "Ivan", 9271112233, city1, "Vernadskogo, 23");
            var client2 = new Client("Petrov", "Petr", 9271112232, city1, "Vernadskogo, 24");
            var client3 = new Client("Alexandrov", "Alex", 9271112231, city1, "Vernadskogo, 25");
            var client4 = new Client("Shevelev", "Turk", 9271112230, city1, "Vernadskogo, 26");

            Client.AllClients.Add(client1);
            Client.AllClients.Add(client2);
            Client.AllClients.Add(client3);
            Client.AllClients.Add(client4);

            //три лимита на данный период
            var measLimit1 = new MeasurementLimit(8, 20, 3, city1);

            MeasurementLimit.AllMeasurementLimits.Add(measLimit1);

            //устанавливаю заявки на замеры в городе
            var meas1 = new Measurement(measLimit1, client1, null);
            var meas2 = new Measurement(measLimit1, client2, null);
            var meas3 = new Measurement(measLimit1, client3, null);
            var meas4 = new Measurement(measLimit1, client4, null);

            Measurement.AllMeasurements.Add(meas1);
            Measurement.AllMeasurements.Add(meas2);
            Measurement.AllMeasurements.Add(meas3);
            Measurement.AllMeasurements.Add(meas4);

            var meas = new MeasurementViewModel();

            //при инициализации должно быть  4 записи в нераспределенных заказах
            bool isFourMeasurementWithoutDates = meas.MeasurementsWithoutDate.Count() == 4;

            var date = DateTime.Today;

            meas.SelectedDate = date;
            //устанавливаю дату для первой заявки
            meas.SelectedMeasureWithoutDate = meas.MeasurementsWithoutDate.FirstOrDefault(m => m.Id == meas1.Id);
            meas.SetDate(false);

            //устанавливаю дату для второй заявки
            meas.SelectedMeasureWithoutDate = meas.MeasurementsWithoutDate.FirstOrDefault(m => m.Id == meas2.Id);
            meas.SetDate(false);

            //устанавливаю дату для третьей заявки
            meas.SelectedMeasureWithoutDate = meas.MeasurementsWithoutDate.FirstOrDefault(m => m.Id == meas3.Id);
            meas.SetDate(false);

            bool isThreeMeasurementWithDatesOneWithout1 = meas.MeasurementsWithoutDate.Count() == 1 && meas.MeasurementsWithDate.Count() == 3;

            //устанавливаю дату для третьей заявки
            meas.SelectedMeasureWithoutDate = meas.MeasurementsWithoutDate.FirstOrDefault(m => m.Id == meas4.Id);
            meas.SetDate(false);

            bool isThreeMeasurementWithDatesOneWithout2 = meas.MeasurementsWithoutDate.Count() == 1 && meas.MeasurementsWithDate.Count() == 3;


            ClearData();

            Assert.IsTrue(isFourMeasurementWithoutDates && isThreeMeasurementWithDatesOneWithout1 && isThreeMeasurementWithDatesOneWithout2);
        }