private void CheckPatternViewModelGoToMeal(Pattern expected, PatternViewModel actual, bool tombstone) { navigator.ClearReceivedCalls(); sut.Subject.NormalBolus = "2.1"; actual.GoToMeal.Call(); if (!tombstone) Assert.AreEqual(2.1, insulin.NormalBolus, 0.01); navigator.Received().GoToMealEditing(expected.From.Id); }
private void CheckPatternViewModelShowAlternatives(PatternViewModel actual, IList<PatternViewModel> alternatives, bool tombstone) { if (!actual.HasAlternatives) { Assert.Throws<InvalidOperationException>(() => actual.ShowAlternatives.Call()); return; } Assert.IsFalse(sut.CalculationDetailsAlternativesVisible); Assert.IsEmpty(sut.CalculationDetailsAlternatives); sut.ChangesProperty("CalculationDetailsAlternativesVisible", () => { sut.ChangesProperty("CalculationDetailsAlternatives", () => { actual.ShowAlternatives.Call(); }); }); if (tombstone) TombstoneCreateInitialize(); Assert.IsTrue(sut.CalculationDetailsAlternativesVisible); if (!tombstone) Assert.AreSame(alternatives, sut.CalculationDetailsAlternatives); Assert.AreEqual(alternatives.Select(pattern => pattern.Factor).ToArray(), sut.CalculationDetailsAlternatives.Select(pattern => pattern.Factor).ToArray()); sut.ChangesProperty("CalculationDetailsAlternativesVisible", () => { sut.CloseCalculationDetailsAlternatives(); }); Assert.IsFalse(sut.CalculationDetailsAlternativesVisible); if (!tombstone) { actual.ShowAlternatives.Call(); sut.CloseCalculationDetailsOrAlternativesOnBackButton(); Assert.IsFalse(sut.CalculationDetailsAlternativesVisible); Assert.IsTrue(sut.CalculationDetailsVisible); } }
private void CheckPatternViewModel(Pattern expected, PatternViewModel actual, IList<PatternViewModel> alternatives, bool tombstone) { if (!tombstone) { Assert.AreSame(expected, actual.Pattern); Assert.AreSame(expected.Match, actual.Match.Model); Assert.AreSame(expected.From, actual.From.Meal); Assert.AreSame(expected.Insulin, actual.Insulin.Insulin); Assert.AreSame(expected.Before, actual.Before.Sugar); Assert.AreSame(expected.After.ElementAt(1), actual.After[1].Sugar); Assert.AreSame(expected.For, actual.For.Model); } Assert.IsNotNull(actual.Match.Scores.First); Assert.IsNotNull(actual.From.Scores.First); Assert.IsNotNull(actual.From.Name); actual.From.Meal.NameId = Guid.Empty; Assert.IsNotNull(actual.From.Name); Assert.IsNotNull(actual.Insulin.Circumstances); Assert.IsNotNull(actual.From.Products); Assert.IsNotEmpty(actual.Before.Text); Assert.IsNotEmpty(actual.After[1].Text); Assert.IsNotNull(actual.For.Scores.First); actual.Insulin.NormalBolus = "1"; CheckPatternViewModelGoToMeal(expected, actual, tombstone: tombstone); CheckPatternViewModelGoToInsulin(expected, actual, tombstone: tombstone); CheckPatternViewModelShowAlternatives(actual, alternatives, tombstone: tombstone); if (tombstone) { Assert.IsNotNull(actual.Match.ProductName); actual.From.AddItem(); actual.Insulin.Insulin.AddCircumstance(new InsulinCircumstance()); Assert.IsNotEmpty(actual.Insulin.Insulin.Circumstances); Assert.AreNotEqual(0, actual.Before.Sugar.BloodSugarInMgdL); Assert.AreNotEqual(0, actual.After[1].Sugar.BloodSugarInMgdL); Assert.IsNotNull(actual.For.ProductName); } }