예제 #1
0
 public void Cannot_Initialize_Circumstances_Two_Times()
 {
     var sut = new Insulin();
     var newCircumstances = new List<Guid>();
     sut.InitializeCircumstances(newCircumstances);
     sut.InitializeCircumstances(newCircumstances);
 }
예제 #2
0
 public void FindInsulinById()
 {
     var expected = new Insulin { Id = Guid.NewGuid() };
     factories.Setup(f => f.Insulins).Returns(new List<Insulin> { expected });
     var finder = new FinderImpl(factories.Object);
     var actual = finder.FindInsulinById(expected.Id);
     Assert.AreSame(expected, actual);
 }
예제 #3
0
 public void Can_Add_Circumstance_When_Initialized()
 {
     var insulin = new Insulin();
     insulin.SetOwner(factories.Object);
     insulin.InitializeCircumstances(new List<Guid>());
     insulin.AddCircumstance(circumstance);
     var circumstances = insulin.Circumstances;
     Assert.AreSame(circumstance, circumstances.Single());
 }
예제 #4
0
 public void FindInsulinByMeal_IfNoInsulinsInHour_ReturnsNull()
 {
     var insulin1 = new Insulin { DateTime = DateTime.Now.AddHours(1.1) };
     var insulin2 = new Insulin { DateTime = DateTime.Now.AddHours(-1.1) };
     factories.Setup(f => f.Insulins).Returns(new List<Insulin> { insulin1, insulin2 });
     var finder = new FinderImpl(factories.Object);
     var meal = new Meal { DateTime = DateTime.Now };
     var insulin = finder.FindInsulinByMeal(meal);
     Assert.IsNull(insulin);
 }
예제 #5
0
 public void FindInsulinByMeal_IfTwoInsulinsInHour_ReturnsCloserInsulin()
 {
     var insulin1 = new Insulin { DateTime = DateTime.Now.AddHours(0.9) };
     var insulin2 = new Insulin { DateTime = DateTime.Now.AddHours(-0.8) };
     factories.Setup(f => f.Insulins).Returns(new List<Insulin> { insulin1, insulin2 });
     var finder = new FinderImpl(factories.Object);
     var meal = new Meal { DateTime = DateTime.Now };
     var insulin = finder.FindInsulinByMeal(meal);
     Assert.AreSame(insulin2, insulin);
 }
예제 #6
0
 public void Can_Get_Circumstances_When_Initialized()
 {
     var defaultCircumstance = new InsulinCircumstance();
     factories.Setup(f => f.DefaultEntities.InsulinCircumstance).Returns(defaultCircumstance);
     var insulin = new Insulin();
     insulin.SetOwner(factories.Object);
     insulin.InitializeCircumstances(new List<Guid> { Guid.NewGuid(), circumstance.Id });
     var circumstances = insulin.Circumstances;
     Assert.AreEqual(2, circumstances.Count());
     Assert.AreSame(defaultCircumstance, circumstances.ElementAt(0));
     Assert.AreSame(circumstance, circumstances.ElementAt(1));
 }
예제 #7
0
 public void FindSugarsAfterInsulin_IfNoSugarsInThreeHoursAfter_ReturnsEmpty()
 {
     var sugar1 = new Sugar { DateTime = DateTime.Now.AddHours(3.1) };
     var sugar2 = new Sugar { DateTime = DateTime.Now.AddHours(-1) };
     factories.Setup(f => f.Sugars).Returns(new List<Sugar> { sugar1, sugar2 });
     factories.Setup(f => f.Insulins).Returns(new List<Insulin>());
     var finder = new FinderImpl(factories.Object);
     var insulin = new Insulin { DateTime = DateTime.Now };
     var sugars = finder.FindSugarsAfterInsulin(insulin, 3);
     Assert.AreEqual(0, sugars.Count);
 }
예제 #8
0
 public void Cannot_Delete_Circumstance_When_Not_Initialized()
 {
     var insulin = new Insulin();
     insulin.SetOwner(factories.Object);
     insulin.RemoveCircumstance(circumstance);
 }
예제 #9
0
 public void Cannot_Get_Circumstances_When_Not_Initialized()
 {
     var sut = new Insulin();
     var temp = sut.Circumstances.ToList();
 }
예제 #10
0
 public void Can_Read_Circumstances()
 {
     var circumstances = new List<Guid> { Guid.NewGuid() };
     var insulin = new Insulin();
     insulin.InitializeCircumstances(circumstances);
     Assert.IsTrue(Enumerable.SequenceEqual(circumstances, insulin.ReadCircumstances()));
 }
예제 #11
0
 public void Can_Remove_Circumstance_When_Initialized()
 {
     var insulin = new Insulin();
     insulin.SetOwner(factories.Object);
     insulin.InitializeCircumstances(new List<Guid> { circumstance.Id });
     insulin.RemoveCircumstance(circumstance);
     var circumstances = insulin.Circumstances;
     Assert.AreEqual(0, circumstances.Count());
 }
예제 #12
0
 public void FindNextInsulin_ReturnsFirstChronologicallyFollowingInsulin()
 {
     var insulin1 = new Insulin { DateTime = DateTime.Now };
     var insulin2 = new Insulin { DateTime = DateTime.Now.AddHours(2) };
     var insulin3 = new Insulin { DateTime = DateTime.Now.AddHours(1) };
     factories.Setup(f => f.Insulins).Returns(new List<Insulin> { insulin2, insulin3 });
     var finder = new FinderImpl(factories.Object);
     var insulin = finder.FindNextInsulin(insulin1);
     Assert.AreSame(insulin3, insulin);
 }
예제 #13
0
 public void FindMealByInsulin_IfMealInHourAfter_ReturnsMeal()
 {
     var meal1 = new Meal { DateTime = DateTime.Now.AddHours(0.9) };
     var meal2 = new Meal { DateTime = DateTime.Now.AddHours(-1.1) };
     factories.Setup(f => f.Meals).Returns(new List<Meal> { meal1, meal2 });
     var finder = new FinderImpl(factories.Object);
     var insulin = new Insulin { DateTime = DateTime.Now };
     var meal = finder.FindMealByInsulin(insulin);
     Assert.AreSame(meal1, meal);
 }
예제 #14
0
        /// <summary>
        /// Gets the hash code
        /// </summary>
        /// <returns>Hash code</returns>
        public override int GetHashCode()
        {
            // credit: http://stackoverflow.com/a/263416/677735
            unchecked // Overflow is fine, just wrap
            {
                var hash = 41;
                // Suitable nullity checks etc, of course :)

                if (Id != null)
                {
                    hash = hash * 59 + Id.GetHashCode();
                }

                if (EventType != null)
                {
                    hash = hash * 59 + EventType.GetHashCode();
                }

                if (CreatedAt != null)
                {
                    hash = hash * 59 + CreatedAt.GetHashCode();
                }

                if (Glucose != null)
                {
                    hash = hash * 59 + Glucose.GetHashCode();
                }

                if (GlucoseType != null)
                {
                    hash = hash * 59 + GlucoseType.GetHashCode();
                }

                if (Carbs != null)
                {
                    hash = hash * 59 + Carbs.GetHashCode();
                }

                if (Insulin != null)
                {
                    hash = hash * 59 + Insulin.GetHashCode();
                }

                if (Units != null)
                {
                    hash = hash * 59 + Units.GetHashCode();
                }

                if (Notes != null)
                {
                    hash = hash * 59 + Notes.GetHashCode();
                }

                if (EnteredBy != null)
                {
                    hash = hash * 59 + EnteredBy.GetHashCode();
                }

                return(hash);
            }
        }
예제 #15
0
 public void FindNextInsulin_ReturnsNullIfNoNextInsulin()
 {
     var insulin1 = new Insulin { DateTime = DateTime.Now };
     var insulin2 = new Insulin { DateTime = DateTime.Now.AddHours(-1) };
     factories.Setup(f => f.Insulins).Returns(new List<Insulin> { insulin2 });
     var finder = new FinderImpl(factories.Object);
     var insulin = finder.FindNextInsulin(insulin1);
     Assert.IsNull(insulin);
 }
예제 #16
0
 public void FindSugarBeforeInsulin_IfNoSugarsInAQuarterBefore_ReturnsNull()
 {
     var sugar1 = new Sugar { DateTime = DateTime.Now.AddMinutes(5) };
     var sugar2 = new Sugar { DateTime = DateTime.Now.AddMinutes(-16) };
     factories.Setup(f => f.Sugars).Returns(new List<Sugar> { sugar1, sugar2 });
     var finder = new FinderImpl(factories.Object);
     var insulin = new Insulin { DateTime = DateTime.Now };
     var sugar = finder.FindSugarBeforeInsulin(insulin);
     Assert.IsNull(sugar);
 }
예제 #17
0
 public void Can_Initialize_Circumstances_With_Non_Empty()
 {
     var sut = new Insulin();
     var newCircumstances = new List<Guid>() { Guid.NewGuid() };
     sut.InitializeCircumstances(newCircumstances);
 }
예제 #18
0
 public void FindSugarsAfterInsulin_IfAnotherInsulinSoonerThanFourHoursLater_ReturnsOnlySugarsBeforeThisInsulin(
     int removeMinutes)
 {
     var sugar1 = new Sugar { DateTime = DateTime.Now.AddHours(1) };
     var sugar2 = new Sugar { DateTime = DateTime.Now.AddHours(2) };
     factories.Setup(f => f.Sugars).Returns(new List<Sugar> { sugar1, sugar2 });
     var insulin1 = new Insulin { DateTime = DateTime.Now };
     var insulin2 = new Insulin { DateTime = sugar2.DateTime.AddMinutes(-removeMinutes) };
     factories.Setup(f => f.Insulins).Returns(new List<Insulin> { insulin1, insulin2 });
     var finder = new FinderImpl(factories.Object);
     var sugars = finder.FindSugarsAfterInsulin(insulin1, 4);
     Assert.IsTrue(Enumerable.SequenceEqual(new List<Sugar> { sugar1 }, sugars));
 }
예제 #19
0
 public void FindSugarsAfterInsulin_IfAnotherInsulinFourHoursLater_DoesntReturnSugarsFourHoursLater()
 {
     var now = DateTime.Now;
     var sugar1 = new Sugar { DateTime = now.AddHours(4) };
     factories.Setup(f => f.Sugars).Returns(new List<Sugar> { sugar1 });
     var insulin1 = new Insulin { DateTime = now };
     var insulin2 = new Insulin { DateTime = now.AddHours(4) };
     factories.Setup(f => f.Insulins).Returns(new List<Insulin> { insulin1, insulin2 });
     var finder = new FinderImpl(factories.Object);
     var sugars = finder.FindSugarsAfterInsulin(insulin1, 4);
     Assert.IsEmpty(sugars);
 }
예제 #20
0
 public void FindSugarBeforeInsulin_IfTwoSugarsInAQuarter_ReturnsLatestSugar()
 {
     var sugar1 = new Sugar { DateTime = DateTime.Now.AddMinutes(-14) };
     var sugar2 = new Sugar { DateTime = DateTime.Now.AddMinutes(-10) };
     factories.Setup(f => f.Sugars).Returns(new List<Sugar> { sugar1, sugar2 });
     var finder = new FinderImpl(factories.Object);
     var insulin = new Insulin { DateTime = DateTime.Now };
     var sugar = finder.FindSugarBeforeInsulin(insulin);
     Assert.AreSame(sugar2, sugar);
 }
예제 #21
0
 public void FindSugarsAfterInsulin_DoesntReturnSugarsWhichIsAtSameTimeAsInsulin()
 {
     var sugar = new Sugar { DateTime = DateTime.Now };
     factories.Setup(f => f.Sugars).Returns(new List<Sugar> { sugar });
     factories.Setup(f => f.Insulins).Returns(new List<Insulin>());
     var finder = new FinderImpl(factories.Object);
     var insulin = new Insulin { DateTime = sugar.DateTime };
     var sugars = finder.FindSugarsAfterInsulin(insulin, 2);
     Assert.IsEmpty(sugars);
 }
예제 #22
0
 public void FindSugarBeforeInsulin_ReturnsSugarWhichIsAtSameTimeAsInsulin()
 {
     var sugar = new Sugar { DateTime = DateTime.Now };
     factories.Setup(f => f.Sugars).Returns(new List<Sugar> { sugar });
     factories.Setup(f => f.Insulins).Returns(new List<Insulin>());
     var finder = new FinderImpl(factories.Object);
     var insulin = new Insulin { DateTime = sugar.DateTime };
     var foundSugar = finder.FindSugarBeforeInsulin(insulin);
     Assert.AreSame(sugar, foundSugar);
 }
예제 #23
0
 public void FindSugarsAfterInsulin_IfSugarsInFourHoursAfter_ReturnsThoseSugars()
 {
     var sugar1 = new Sugar { DateTime = DateTime.Now.AddHours(1) };
     var sugar2 = new Sugar { DateTime = DateTime.Now.AddHours(3.5) };
     var sugar3 = new Sugar { DateTime = DateTime.Now.AddHours(5) };
     factories.Setup(f => f.Sugars).Returns(new List<Sugar> { sugar1, sugar2, sugar3 });
     factories.Setup(f => f.Insulins).Returns(new List<Insulin>());
     var finder = new FinderImpl(factories.Object);
     var insulin = new Insulin { DateTime = DateTime.Now };
     var sugars = finder.FindSugarsAfterInsulin(insulin, 4);
     Assert.IsTrue(Enumerable.SequenceEqual(new List<Sugar> { sugar1, sugar2 }, sugars));
 }
예제 #24
0
 public void FindSugarsAfterInsulin_SortsReturnedSugarsChronologically()
 {
     var sugar1 = new Sugar { DateTime = DateTime.Now.AddHours(2) };
     var sugar2 = new Sugar { DateTime = DateTime.Now.AddHours(1) };
     factories.Setup(f => f.Sugars).Returns(new List<Sugar> { sugar1, sugar2 });
     factories.Setup(f => f.Insulins).Returns(new List<Insulin>());
     var finder = new FinderImpl(factories.Object);
     var insulin = new Insulin { DateTime = DateTime.Now };
     var sugars = finder.FindSugarsAfterInsulin(insulin, 4);
     Assert.IsTrue(Enumerable.SequenceEqual(new List<Sugar> { sugar2, sugar1 }, sugars));
 }
예제 #25
0
        //DELETE
        public static string GetDeleteQuery(Insulin item)
        {
            string query = DeleteQuery + Id + "=" + item.getId();

            return(query);
        }
예제 #26
0
        /// <summary>
        /// Returns true if Treatment instances are equal
        /// </summary>
        /// <param name="other">Instance of Treatment to be compared</param>
        /// <returns>Boolean</returns>
        public bool Equals(Treatment other)
        {
            if (ReferenceEquals(null, other))
            {
                return(false);
            }
            if (ReferenceEquals(this, other))
            {
                return(true);
            }

            return
                ((
                     Id == other.Id ||
                     Id != null &&
                     Id.Equals(other.Id)
                     ) &&
                 (
                     EventType == other.EventType ||
                     EventType != null &&
                     EventType.Equals(other.EventType)
                 ) &&
                 (
                     CreatedAt == other.CreatedAt ||
                     CreatedAt != null &&
                     CreatedAt.Equals(other.CreatedAt)
                 ) &&
                 (
                     Glucose == other.Glucose ||
                     Glucose != null &&
                     Glucose.Equals(other.Glucose)
                 ) &&
                 (
                     GlucoseType == other.GlucoseType ||
                     GlucoseType != null &&
                     GlucoseType.Equals(other.GlucoseType)
                 ) &&
                 (
                     Carbs == other.Carbs ||
                     Carbs != null &&
                     Carbs.Equals(other.Carbs)
                 ) &&
                 (
                     Insulin == other.Insulin ||
                     Insulin != null &&
                     Insulin.Equals(other.Insulin)
                 ) &&
                 (
                     Units == other.Units ||
                     Units != null &&
                     Units.Equals(other.Units)
                 ) &&
                 (
                     Notes == other.Notes ||
                     Notes != null &&
                     Notes.Equals(other.Notes)
                 ) &&
                 (
                     EnteredBy == other.EnteredBy ||
                     EnteredBy != null &&
                     EnteredBy.Equals(other.EnteredBy)
                 ));
        }