public void TestInitialize()
 {
     var fixture = new Fixture();
     factories = Substitute.For<Factories>();
     navigator = Substitute.For<Navigator>();
     stateProvider = Substitute.For<StateProvider>();
     facade = Substitute.For<ReplacementBuilderAndSugarEstimatorFacade>();
     clipboard = Substitute.For<Clipboard>();
     messageDialog = Substitute.For<MessageDialog>();
     navigation = new InsulinEditingViewModel.Navigation();
     CreateSut();
     insulin = fixture.Create<Insulin>();
     insulin.InitializeCircumstances(new List<Guid>());
     insulin.SetOwner(factories);
     sugar = new Sugar();
     sugar.SetOwner(factories);
     factories.InsulinCircumstances.Returns(fixture.CreateMany<InsulinCircumstance>().ToList());
     factories.CreateSugar().Returns(sugar);
     settings = new Settings { MaxBolus = 5 };
     factories.Settings.Returns(settings);
     meal = fixture.Create<Meal>();
     factories.Finder.FindMealByInsulin(insulin).Returns(meal);
     factories.Finder.FindInsulinById(insulin.Id).Returns(insulin);
     var replacementAndEstimatedSugars = new ReplacementAndEstimatedSugars();
     replacementAndEstimatedSugars.EstimatedSugars = new List<Sugar>();
     replacementAndEstimatedSugars.Replacement
         = new Replacement { InsulinTotal = new Insulin(), Items = new List<ReplacementItem>() };
     facade.GetReplacementAndEstimatedSugars(Arg.Any<Meal>(), Arg.Any<Insulin>(), Arg.Any<Sugar>())
             .Returns(replacementAndEstimatedSugars);
     factories.MealNames.Returns(new List<MealName>());
     stateProvider.State.Returns(new Dictionary<string, object>());
 }
 public void ExportsAndImportsSugarsAndInsulinsAndInsulinCircumstances()
 {
     var sugar = factories.Sugars[0];
     var insulin = factories.Insulins[0];
     var insulinCircumstance = factories.InsulinCircumstances[0];
     var sut = new ExportAndImportImpl(factories);
     var data = sut.Export();
     factories.Sugars.Clear();
     factories.Insulins.Clear();
     factories.InsulinCircumstances.Clear();
     var empty = new Insulin();
     empty.InitializeCircumstances(new List<Guid>());
     insulin.CopyCircumstancesFrom(empty);
     Assert.IsEmpty(insulin.Circumstances);
     sut.Import(data);
     Assert.AreEqual(sugar.Id, factories.Sugars[0].Id);
     Assert.AreEqual(insulin.Id, factories.Insulins[0].Id);
     Assert.AreSame(factories.InsulinCircumstances[0], factories.Insulins[0].Circumstances.Single());
     Assert.AreEqual(insulinCircumstance.Id, factories.InsulinCircumstances[0].Id);
     sut.Import(data);
     Assert.AreEqual(1, factories.Sugars.Count);
     Assert.AreEqual(1, factories.Insulins.Count);
     Assert.AreEqual(1, factories.InsulinCircumstances.Count);
 }
 private void SetupInsulins()
 {
     var insulin = new Insulin();
     insulin.SetOwner(factories);
     insulin.Id = Guid.NewGuid();
     insulin.InitializeCircumstances(new List<Guid>());
     factories.Insulins.Returns(new List<Insulin> { insulin });
     factories.CreateInsulin().Returns(_ => { factories.Insulins.Add(insulin); return insulin; });
     var insulinCircumstance = new InsulinCircumstance();
     insulinCircumstance.SetOwner(factories);
     insulinCircumstance.Id = Guid.NewGuid();
     insulin.AddCircumstance(insulinCircumstance);
     factories.InsulinCircumstances.Returns(new List<InsulinCircumstance> { insulinCircumstance });
     factories.CreateInsulinCircumstance()
         .Returns(_ => { factories.InsulinCircumstances.Add(insulinCircumstance); return insulinCircumstance; });
 }
 public void TestInitialize()
 {
     insulin = new Fixture().Create<Insulin>();
     factories = Substitute.For<Factories>();
     factories.Finder.Returns(new FinderImpl(factories));
     insulin.SetOwner(factories);
     var settings = new Settings { MaxBolus = 3 };
     factories.Settings.Returns(settings);
     factories.InsulinCircumstances.Returns(new Fixture().CreateMany<InsulinCircumstance>(5).ToList());
     var circumstanceIds = factories.InsulinCircumstances.Take(3)
         .Select(circumstance => circumstance.Id).ToList();
     insulin.InitializeCircumstances(circumstanceIds);
     allCircumstances = factories.InsulinCircumstances
         .Select(circumstance => new InsulinCircumstanceViewModel(circumstance, factories)).ToList();
 }