public void CircumstancesSetterRaisesOnPropertyChangedOnlyWhenChangeWasMade()
 {
     var sut = new InsulinViewModel(insulin, factories, allCircumstances: allCircumstances);
     sut.ChangesProperty("Circumstances", () =>
     {
         var newValue = sut.Circumstances.ToList();
         newValue.Add(allCircumstances.Last());
         sut.Circumstances = newValue;
     });
     sut.NotChangesProperty("Circumstances", () =>
     {
         sut.Circumstances = sut.Circumstances.ToList();
     });
 }
 public void TrivialProperties()
 {
     var sut = new InsulinViewModel(insulin, factories, allCircumstances: allCircumstances);
     Assert.AreEqual(insulin.Id, sut.Id);
     var universal = DateTime.UtcNow;
     sut.ChangesProperty("DateTime", () =>
     {
         sut.DateTime = universal;
     });
     Assert.AreEqual(universal.ToLocalTime(), sut.DateTime);
     Assert.AreEqual(universal.ToLocalTime().Date, sut.DateOnly);
     Assert.AreEqual(universal.ToLocalTime().ToShortDateInAlternativeFormat()
         + " " + universal.ToLocalTime().ToShortTimeString(), sut.DateAndTime);
     Assert.AreEqual(universal.ToLocalTime().ToShortTimeString(), sut.Time);
     Assert.AreEqual(universal.ToLocalTime().ToString("dddd") + ", " + sut.DateAndTime, sut.LongDateAndTime);
     Assert.AreEqual(insulin.Note, sut.Note);
     var note = new Fixture().Create<string>();
     sut.Note = note;
     Assert.AreEqual(note, insulin.Note);
     Assert.AreEqual(insulin.NormalBolus.ToStringOrEmpty(), sut.NormalBolus);
     sut.NormalBolus = "1.5";
     Assert.AreEqual(1.5f, insulin.NormalBolus);
     Assert.AreEqual(insulin.SquareWaveBolus.ToStringOrEmpty(), sut.SquareWaveBolus);
     sut.SquareWaveBolus = "2.5";
     Assert.AreEqual(2.5f, insulin.SquareWaveBolus);
     Assert.AreEqual(insulin.SquareWaveBolusHours.ToStringOrEmpty(), sut.SquareWaveBolusHours);
     sut.SquareWaveBolusHours = "3.5";
     Assert.AreEqual(3.5f, insulin.SquareWaveBolusHours);
 }