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 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 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 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);
        }