public void NoPrevious_Test() { var database = new SQLiteDatabaseService(); var activityGrouping = new Mock<IActivityGroupingService>(); activityGrouping.Setup(x => x.GetGroupCategory("Cycling")).Returns(ActivityCategory.Cardio); var workout = new Workout {Date = new DateTime(2015, 1, 1), Activities = new[] {new Activity {Group = "Cycling", Sets = new[] {new Set {Distance = 100000}}}}}; var achievements = new LifetimeMilestoneProvider(database, activityGrouping.Object).Execute(workout).Result.ToList(); Assert.That(achievements, Is.Empty); }
public void Key_Metric_Not_Specified_Test() { var database = new SQLiteDatabaseService(); var activityGrouping = new Mock<IActivityGroupingService>(); activityGrouping.Setup(x => x.GetGroupCategory("Cycling")).Returns(ActivityCategory.Cardio); var workout = new Workout {Date = new DateTime(2015, 1, 1), Activities = new[] {new Activity {Group = "Cycling", Sets = new[] {new Set(), new Set()}}}}; var achievements = new DailyRecordProvider(database, activityGrouping.Object).Execute(workout).Result; Assert.That(achievements, Is.Empty); }
public void Normal_Test() { var database = new SQLiteDatabaseService(); database.Insert(new Workout {Id = 0, Date = new DateTime(2014, 1, 1), Activities = new[] {new Activity {Name = "Cycling", Group = "Cycling", Sets = new[] {new Set {Distance = 900000}}}}}); var activityGrouping = new Mock<IActivityGroupingService>(); activityGrouping.Setup(x => x.GetGroupCategory("Cycling")).Returns(ActivityCategory.Cardio); var workout = new Workout {Date = new DateTime(2015, 1, 1), Activities = new[] {new Activity {Group = "Cycling", Sets = new[] {new Set {Distance = 100000}}}}}; var achievements = new LifetimeMilestoneProvider(database, activityGrouping.Object).Execute(workout).Result.ToList(); Assert.That(achievements.Count, Is.EqualTo(1)); var achievement = achievements[0]; Assert.That(achievement.Type, Is.EqualTo("LifetimeMilestone")); Assert.That(achievement.Group, Is.EqualTo("Cycling")); Assert.That(achievement.Distance, Is.EqualTo(1000000M)); Assert.That(achievement.CommentText, Is.EqualTo("Lifetime Cycling milestone: 1,000 km")); }
public void Imperial_Distance_Test() { var database = new SQLiteDatabaseService(); database.Insert(new Workout {Id = 0, Date = new DateTime(2014, 1, 1), Activities = new[] {new Activity {Name = "Cycling", Group = "Cycling", Sets = new[] {new Set {Distance = 20000, Duration = 2000}}}}}); var activityGrouping = new Mock<IActivityGroupingService>(); activityGrouping.Setup(x => x.GetGroupCategory("Cycling")).Returns(ActivityCategory.Cardio); var workout = new Workout {Date = new DateTime(2015, 1, 1), Activities = new[] {new Activity {Group = "Cycling", Sets = new[] {new Set {Distance = 16100, Duration = 1000, IsImperial = true}}}}}; var achievements = new QualifiedRecordProvider(database, activityGrouping.Object).Execute(workout).Result.ToList(); Assert.That(achievements.Count, Is.EqualTo(1)); var achievement = achievements[0]; Assert.That(achievement.Type, Is.EqualTo("QualifiedRecord")); Assert.That(achievement.Group, Is.EqualTo("Cycling")); Assert.That(achievement.Speed, Is.EqualTo(16.1M)); Assert.That(achievement.Distance, Is.EqualTo(16093.44M)); Assert.That(achievement.CommentText, Is.EqualTo("Qualified Cycling record: 36 mph for 10 mi or more")); }
public void Duplicate_Record_In_Single_Workout_Test() { var database = new SQLiteDatabaseService(); database.Insert(new Workout {Id = 0, Date = new DateTime(2014, 1, 1), Activities = new[] {new Activity {Name = "Squats", Group = "Squats", Sets = new[] {new Set {Weight = 100, Repetitions = 1}}}}}); var activityGrouping = new Mock<IActivityGroupingService>(); activityGrouping.Setup(x => x.GetGroupCategory("Squats")).Returns(ActivityCategory.Weights); var workout = new Workout {Date = new DateTime(2015, 1, 1), Activities = new[] {new Activity {Group = "Squats", Sets = new[] {new Set {Weight = 50, Repetitions = 2}}}, new Activity {Sequence = 1, Group = "Squats", Sets = new[] {new Set {Weight = 50, Repetitions = 2}}}}}; var achievements = new QualifiedRecordProvider(database, activityGrouping.Object).Execute(workout).Result.ToList(); Assert.That(achievements.Count, Is.EqualTo(1)); var achievement = achievements[0]; Assert.That(achievement.Type, Is.EqualTo("QualifiedRecord")); Assert.That(achievement.Group, Is.EqualTo("Squats")); Assert.That(achievement.Weight, Is.EqualTo(50M)); Assert.That(achievement.Repetitions, Is.EqualTo(2M)); Assert.That(achievement.CommentText, Is.EqualTo("Qualified Squats record: 2 reps at 50 kg or more")); }
public void Equal_To_Old_Weights_Record_Test() { var database = new SQLiteDatabaseService(); database.Insert(new Workout {Id = 0, Date = new DateTime(2013, 1, 1), Activities = new[] {new Activity {Name = "Squats", Sets = new[] {new Set {Weight = 2}}}}}); database.Insert(new Workout {Id = 1, Date = new DateTime(2014, 1, 1), Activities = new[] {new Activity {Name = "Squats", Sets = new[] {new Set {Weight = 1}}}}}); var activityGrouping = new Mock<IActivityGroupingService>(); activityGrouping.Setup(x => x.GetGroupCategory("Squats")).Returns(ActivityCategory.Weights); var workout = new Workout {Date = new DateTime(2015, 1, 1), Activities = new[] {new Activity {Name = "Squats", Group = "Squats", Sets = new[] {new Set {Weight = 2}}}}}; var achievements = new ComebackRecordProvider(database, activityGrouping.Object).Execute(workout).Result.ToList(); Assert.That(achievements.Count, Is.EqualTo(1)); var achievement = achievements[0]; Assert.That(achievement.Type, Is.EqualTo("ComebackRecord")); Assert.That(achievement.Activity, Is.EqualTo("Squats")); Assert.That(achievement.Weight, Is.EqualTo(2M)); Assert.That(achievement.CommentText, Is.EqualTo("1 year Squats comeback record: 2 kg")); }
public void ConstructWithConnStrSubstitutions() { var appDir = AppDomain.CurrentDomain.BaseDirectory; var db = new SQLiteDatabaseService(); db.Configure(new DatabaseServiceConfiguration("SQLite", typeof(SQLiteDatabaseService).FullName, "Data Source={AppDir}\\DataDir\\DB.db3;Version=3;Pooling=True;Max Pool Size=10;Synchronous=off;FailIfMissing=False;Journal Mode=On;", null)); var connStr = db.CurrentConnectionString; Assert.AreEqual(-1, connStr.IndexOf("{AppDir}")); Assert.AreEqual("Data Source=" + (Path.Combine(appDir, "DataDir\\DB.db3")) + ";Version=3;Pooling=True;Max Pool Size=10;Synchronous=off;FailIfMissing=False;Journal Mode=On;", connStr); db.Configure(new DatabaseServiceConfiguration("SQLite", typeof(SQLiteDatabaseService).FullName, "Data Source={AppDir}\\..\\App_Data\\DB.db3;Version=3;Pooling=True;Max Pool Size=10;Synchronous=off;FailIfMissing=False;Journal Mode=On;", null)); connStr = db.CurrentConnectionString; Assert.AreEqual(-1, connStr.IndexOf("{AppDir}")); Assert.AreEqual("Data Source=" + (Path.Combine(appDir, "..\\App_Data\\DB.db3")) + ";Version=3;Pooling=True;Max Pool Size=10;Synchronous=off;FailIfMissing=False;Journal Mode=On;", connStr); }
public void Very_Small_Weight_Test() { var database = new SQLiteDatabaseService(); database.Insert(new Workout {Id = 0, Date = new DateTime(2014, 1, 1), Activities = new[] {new Activity {Name = "Squats", Group = "Squats", Sets = new[] {new Set {Weight = 2, Repetitions = 1}}}}}); var activityGrouping = new Mock<IActivityGroupingService>(); activityGrouping.Setup(x => x.GetGroupCategory("Squats")).Returns(ActivityCategory.Weights); var workout = new Workout {Date = new DateTime(2015, 1, 1), Activities = new[] {new Activity {Group = "Squats", Sets = new[] {new Set {Weight = 0.9M, Repetitions = 2}}}}}; var achievements = new QualifiedRecordProvider(database, activityGrouping.Object).Execute(workout).Result; Assert.That(achievements, Is.Empty); }
public void Very_Small_Distance_Test() { var database = new SQLiteDatabaseService(); database.Insert(new Workout {Id = 0, Date = new DateTime(2014, 1, 1), Activities = new[] {new Activity {Name = "Cycling", Group = "Cycling", Sets = new[] {new Set {Distance = 2000, Speed = 1}}}}}); var activityGrouping = new Mock<IActivityGroupingService>(); activityGrouping.Setup(x => x.GetGroupCategory("Cycling")).Returns(ActivityCategory.Cardio); var workout = new Workout {Date = new DateTime(2015, 1, 1), Activities = new[] {new Activity {Group = "Cycling", Sets = new[] {new Set {Distance = 900, Speed = 2}}}}}; var achievements = new QualifiedRecordProvider(database, activityGrouping.Object).Execute(workout).Result; Assert.That(achievements, Is.Empty); }
public void Normal_Test() { var database = new SQLiteDatabaseService(); database.Insert(new Workout {Id = 0, Date = new DateTime(2013, 1, 1), Activities = new[] {new Activity {Name = "Cycling", Sets = new[] {new Set {Distance = 3000}}}}}); database.Insert(new Workout {Id = 1, Date = new DateTime(2014, 1, 1), Activities = new[] {new Activity {Name = "Cycling", Sets = new[] {new Set {Distance = 1000}}}}}); var activityGrouping = new Mock<IActivityGroupingService>(); activityGrouping.Setup(x => x.GetGroupCategory("Cycling")).Returns(ActivityCategory.Cardio); var workout = new Workout {Date = new DateTime(2015, 1, 1), Activities = new[] {new Activity {Name = "Cycling", Group = "Cycling", Sets = new[] {new Set {Distance = 2000}}}}}; var achievements = new ComebackRecordProvider(database, activityGrouping.Object).Execute(workout).Result.ToList(); Assert.That(achievements.Count, Is.EqualTo(1)); var achievement = achievements[0]; Assert.That(achievement.Type, Is.EqualTo("ComebackRecord")); Assert.That(achievement.Activity, Is.EqualTo("Cycling")); Assert.That(achievement.Distance, Is.EqualTo(2000M)); Assert.That(achievement.CommentText, Is.EqualTo("1 year Cycling comeback record: 2 km")); }