Exemplo n.º 1
0
        public void TestRetrieve_Fail()
        {
            Mock <IDynamoDBContext> context = new Mock <IDynamoDBContext>();

            context.Setup(D => D.LoadAsync <WeighInWeight>(It.IsAny <string>(), It.IsAny <DateTime?>(), It.IsAny <CancellationToken>())).Returns((string a, DateTime? b, object c) =>
            {
                throw new Exception("Test Exception");
            });
            context.Setup(D => D.LoadAsync <WeighInUser>(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <CancellationToken>())).Returns((string a, string b, object c) =>
            {
                WeighInUser user = new WeighInUser()
                {
                    UserId             = a,
                    FirstName          = b,
                    UserKey            = "UnitTestKey",
                    StartingWeight     = 88.8m,
                    StartingWeightDate = new DateTime(2018, 7, 16)
                };
                return(Task.FromResult <WeighInUser>(user));
            });

            TestAwsFactory factory = new TestAwsFactory()
            {
                DynamoDBContext = context.Object
            };

            using (GetWeight getWeight = new GetWeight(factory))
            {
                WeighInException wEx = Assert.Throws <WeighInException>(() => getWeight.Retrieve("UnitTestId", "Unit", new DateTime(2018, 7, 16)));
                Assert.That(wEx.Message, Is.EqualTo("Test Exception"));
            }
        }
Exemplo n.º 2
0
        public void TestRetrieve_Success()
        {
            string   actualUserKey    = string.Empty;
            DateTime?actualWeightDate = null;

            Mock <IDynamoDBContext> context = new Mock <IDynamoDBContext>();

            context.Setup(D => D.LoadAsync <WeighInWeight>(It.IsAny <string>(), It.IsAny <DateTime?>(), It.IsAny <CancellationToken>())).Returns((string a, DateTime b, object c) =>
            {
                actualUserKey        = a;
                actualWeightDate     = b;
                WeighInWeight weight = new WeighInWeight()
                {
                    UserKey    = a,
                    WeightDate = b,
                    Weight     = 88.8m
                };

                return(Task.FromResult <WeighInWeight>(weight));
            });
            context.Setup(D => D.LoadAsync <WeighInUser>(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <CancellationToken>())).Returns((string a, string b, object c) =>
            {
                WeighInUser user = new WeighInUser()
                {
                    UserId             = a,
                    FirstName          = b,
                    UserKey            = "UnitTestKey",
                    StartingWeight     = 88.8m,
                    StartingWeightDate = new DateTime(2018, 7, 16)
                };
                return(Task.FromResult <WeighInUser>(user));
            });

            TestAwsFactory factory = new TestAwsFactory()
            {
                DynamoDBContext = context.Object
            };

            using (GetWeight getWeight = new GetWeight(factory))
            {
                string jsonResult = getWeight.Retrieve("UnitTestId", "Unit", new DateTime(2018, 7, 16));

                Console.WriteLine(jsonResult);

                Assert.That(actualUserKey, Is.EqualTo("UnitTestKey"), "actualUserKey");
                Assert.That(actualWeightDate, Is.EqualTo(new DateTime(2018, 7, 16)), "actualWeightDate");

                dynamic user = JObject.Parse(jsonResult);
                Assert.That((string)user.UserKey, Is.EqualTo("UnitTestKey"), "UserKey");
                Assert.That((DateTime)user.WeightDate, Is.EqualTo(new DateTime(2018, 7, 16)), "WeightDate");
                Assert.That((decimal)user.Weight, Is.EqualTo(88.8m), "Weight");
            }
        }
Exemplo n.º 3
0
        public void TestSave()
        {
            WeighInUser actualUser = null;

            Mock <IDynamoDBContext> context = new Mock <IDynamoDBContext>();

            context.Setup(C => C.SaveAsync <WeighInUser>(It.IsAny <WeighInUser>(), It.IsAny <CancellationToken>())).Returns((WeighInUser user, object t) =>
            {
                actualUser = user;
                return(Task.CompletedTask);
            });

            TestAwsFactory factory = new TestAwsFactory()
            {
                DynamoDBContext = context.Object
            };

            WeighInUser testUser = new WeighInUser()
            {
                UserId             = "TestUserId",
                FirstName          = "Unit",
                StartingWeight     = 88.8m,
                StartingWeightDate = new DateTime(2018, 7, 16)
            };
            string testUserJson = JsonConvert.SerializeObject(testUser);

            using (PostUser postUser = new PostUser(factory))
            {
                string userOutputJson = postUser.Save(testUserJson);

                Assert.That(actualUser, Is.Not.Null, "actualUser");
                Assert.That(actualUser.UserId, Is.EqualTo("TestUserId"), "actualUserId");
                Assert.That(actualUser.FirstName, Is.EqualTo("Unit"), "actualFirstName");
                Assert.That(actualUser.StartingWeight, Is.EqualTo(88.8m), "actualStartingWeight");
                Assert.That(actualUser.StartingWeightDate, Is.EqualTo(new DateTime(2018, 7, 16)), "actualStartingWeightDate");
                Assert.That(actualUser.UserKey, Is.Not.Null.And.Not.Empty, "actualUserKey");


                dynamic user = JObject.Parse(userOutputJson);
                Assert.That((string)user.UserId, Is.EqualTo("TestUserId"), "UserId");
                Assert.That((string)user.FirstName, Is.EqualTo("Unit"), "FirstName");
                Assert.That((decimal)user.StartingWeight, Is.EqualTo(88.8m), "StartingWeight");
                Assert.That((DateTime)user.StartingWeightDate, Is.EqualTo(new DateTime(2018, 7, 16)), "StartingWeightDate");
                Assert.That((string)user.UserKey, Is.Not.Null.And.Not.Empty, "UserKey");
            }
        }
Exemplo n.º 4
0
        public void TestSave()
        {
            WeighInWeight actualWeight = null;

            Mock <IDynamoDBContext> context = new Mock <IDynamoDBContext>();

            context.Setup(C => C.SaveAsync <WeighInWeight>(It.IsAny <WeighInWeight>(), It.IsAny <CancellationToken>())).Returns((WeighInWeight weight, object t) =>
            {
                actualWeight = weight;
                return(Task.CompletedTask);
            });
            context.Setup(D => D.LoadAsync <WeighInUser>(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <CancellationToken>())).Returns((string a, string b, object c) =>
            {
                WeighInUser user = new WeighInUser()
                {
                    UserId             = a,
                    FirstName          = b,
                    UserKey            = "UnitTestKey",
                    StartingWeight     = 88.8m,
                    StartingWeightDate = new DateTime(2018, 7, 16)
                };
                return(Task.FromResult <WeighInUser>(user));
            });

            TestAwsFactory factory = new TestAwsFactory()
            {
                DynamoDBContext = context.Object
            };

            using (PostWeight postWeight = new PostWeight(factory))
            {
                string weightOutputJson = postWeight.Save("UnitTestId", "Unit", DateTime.Today, 78.8m);

                Assert.That(actualWeight, Is.Not.Null, "actualUser");
                Assert.That(actualWeight.UserKey, Is.Not.Null.And.Not.Empty, "actualUserKey");
                Assert.That(actualWeight.Weight, Is.EqualTo(78.8m), "actualWeight");
                Assert.That(actualWeight.WeightDate, Is.EqualTo(DateTime.Today), "actualWeightDate");


                dynamic weight = JObject.Parse(weightOutputJson);
                Assert.That((string)weight.UserKey, Is.Not.Null.And.Not.Empty, "UserKey");
                Assert.That((decimal)weight.Weight, Is.EqualTo(78.8m), "StartingWeight");
                Assert.That((DateTime)weight.WeightDate, Is.EqualTo(DateTime.Today), "StartingWeightDate");
            }
        }
Exemplo n.º 5
0
        public void TestRetrieve_Fail()
        {
            Mock <IDynamoDBContext> context = new Mock <IDynamoDBContext>();

            context.Setup(D => D.LoadAsync <WeighInUser>(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <CancellationToken>())).Returns((string a, string b, object c) =>
            {
                throw new Exception("Test Exception");
            });

            TestAwsFactory factory = new TestAwsFactory()
            {
                DynamoDBContext = context.Object
            };

            using (GetUser getUser = new GetUser(factory))
            {
                WeighInException wEx = Assert.Throws <WeighInException>(() => getUser.Retrieve("UnitTestId", "Unit"));
                Assert.That(wEx.Message, Is.EqualTo("Test Exception"));
            }
        }
        protected IAwsFactory GetAwsFactory()
        {
            Mock <AsyncSearch <WeighInWeight> > searchResults1 = new Mock <AsyncSearch <WeighInWeight> >();

            searchResults1.Setup(r => r.GetRemainingAsync(It.IsAny <CancellationToken>())).Returns(() =>
            {
                List <WeighInWeight> weights = new List <WeighInWeight>()
                {
                    new WeighInWeight()
                    {
                        UserKey = "TestUserKey", WeightDate = DateTime.Today, Weight = 107.7m
                    },
                    new WeighInWeight()
                    {
                        UserKey = "TestUserKey", WeightDate = DateTime.Today.AddDays(-1), Weight = 108.3m
                    },
                    new WeighInWeight()
                    {
                        UserKey = "TestUserKey", WeightDate = DateTime.Today.AddDays(-2), Weight = 108.3m
                    },
                    new WeighInWeight()
                    {
                        UserKey = "TestUserKey", WeightDate = DateTime.Today.AddDays(-3), Weight = 108.3m
                    },
                    new WeighInWeight()
                    {
                        UserKey = "TestUserKey", WeightDate = DateTime.Today.AddDays(-4), Weight = 108.3m
                    },
                    new WeighInWeight()
                    {
                        UserKey = "TestUserKey", WeightDate = DateTime.Today.AddDays(-5), Weight = 108.3m
                    },
                    new WeighInWeight()
                    {
                        UserKey = "TestUserKey", WeightDate = DateTime.Today.AddDays(-6), Weight = 108.3m
                    }
                };

                return(Task.FromResult <List <WeighInWeight> >(weights));
            });

            Mock <AsyncSearch <WeighInWeight> > searchResults2 = new Mock <AsyncSearch <WeighInWeight> >();

            searchResults2.Setup(r => r.GetRemainingAsync(It.IsAny <CancellationToken>())).Returns(() =>
            {
                List <WeighInWeight> weights = new List <WeighInWeight>()
                {
                    new WeighInWeight()
                    {
                        UserKey = "TestUserKey", WeightDate = DateTime.Today.AddDays(-7), Weight = 107.7m
                    },
                    new WeighInWeight()
                    {
                        UserKey = "TestUserKey", WeightDate = DateTime.Today.AddDays(-8), Weight = 108.3m
                    },
                    new WeighInWeight()
                    {
                        UserKey = "TestUserKey", WeightDate = DateTime.Today.AddDays(-9), Weight = 108.3m
                    },
                    new WeighInWeight()
                    {
                        UserKey = "TestUserKey", WeightDate = DateTime.Today.AddDays(-10), Weight = 108.3m
                    },
                    new WeighInWeight()
                    {
                        UserKey = "TestUserKey", WeightDate = DateTime.Today.AddDays(-11), Weight = 108.3m
                    },
                    new WeighInWeight()
                    {
                        UserKey = "TestUserKey", WeightDate = DateTime.Today.AddDays(-12), Weight = 108.3m
                    },
                    new WeighInWeight()
                    {
                        UserKey = "TestUserKey", WeightDate = DateTime.Today.AddDays(-13), Weight = 108.3m
                    }
                };

                return(Task.FromResult <List <WeighInWeight> >(weights));
            });

            Mock <AsyncSearch <WeighInWeight> > searchResults3 = new Mock <AsyncSearch <WeighInWeight> >();

            searchResults3.Setup(r => r.GetRemainingAsync(It.IsAny <CancellationToken>())).Returns(() =>
            {
                List <WeighInWeight> weights = new List <WeighInWeight>()
                {
                    new WeighInWeight()
                    {
                        UserKey = "TestUserKey", WeightDate = DateTime.Today.AddDays(-14), Weight = 107.7m
                    },
                    new WeighInWeight()
                    {
                        UserKey = "TestUserKey", WeightDate = DateTime.Today.AddDays(-15), Weight = 108.3m
                    },
                    new WeighInWeight()
                    {
                        UserKey = "TestUserKey", WeightDate = DateTime.Today.AddDays(-16), Weight = 108.3m
                    },
                    new WeighInWeight()
                    {
                        UserKey = "TestUserKey", WeightDate = DateTime.Today.AddDays(-17), Weight = 108.3m
                    },
                    new WeighInWeight()
                    {
                        UserKey = "TestUserKey", WeightDate = DateTime.Today.AddDays(-18), Weight = 108.3m
                    },
                    new WeighInWeight()
                    {
                        UserKey = "TestUserKey", WeightDate = DateTime.Today.AddDays(-19), Weight = 108.3m
                    },
                    new WeighInWeight()
                    {
                        UserKey = "TestUserKey", WeightDate = DateTime.Today.AddDays(-20), Weight = 108.3m
                    }
                };

                return(Task.FromResult <List <WeighInWeight> >(weights));
            });

            Mock <AsyncSearch <WeighInWeight> > searchResults4 = new Mock <AsyncSearch <WeighInWeight> >();

            searchResults4.Setup(r => r.GetRemainingAsync(It.IsAny <CancellationToken>())).Returns(() =>
            {
                List <WeighInWeight> weights = new List <WeighInWeight>()
                {
                    new WeighInWeight()
                    {
                        UserKey = "TestUserKey", WeightDate = DateTime.Today.AddDays(-21), Weight = 107.7m
                    },
                    new WeighInWeight()
                    {
                        UserKey = "TestUserKey", WeightDate = DateTime.Today.AddDays(-22), Weight = 108.3m
                    },
                    new WeighInWeight()
                    {
                        UserKey = "TestUserKey", WeightDate = DateTime.Today.AddDays(-23), Weight = 108.3m
                    },
                    new WeighInWeight()
                    {
                        UserKey = "TestUserKey", WeightDate = DateTime.Today.AddDays(-24), Weight = 108.3m
                    },
                    new WeighInWeight()
                    {
                        UserKey = "TestUserKey", WeightDate = DateTime.Today.AddDays(-25), Weight = 108.3m
                    },
                    new WeighInWeight()
                    {
                        UserKey = "TestUserKey", WeightDate = DateTime.Today.AddDays(-26), Weight = 108.3m
                    },
                    new WeighInWeight()
                    {
                        UserKey = "TestUserKey", WeightDate = DateTime.Today.AddDays(-27), Weight = 108.3m
                    }
                };

                return(Task.FromResult <List <WeighInWeight> >(weights));
            });
            Queue <AsyncSearch <WeighInWeight> > weightQueue = new Queue <AsyncSearch <WeighInWeight> >(new List <AsyncSearch <WeighInWeight> >()
            {
                searchResults1.Object,
                searchResults2.Object,
                searchResults3.Object,
                searchResults4.Object
            });

            int CurrentWeek = 0;

            Mock <IDynamoDBContext> context = new Mock <IDynamoDBContext>();

            context.Setup(C => C.QueryAsync <WeighInWeight>(It.IsAny <string>(), It.IsAny <QueryOperator>(), It.IsAny <IEnumerable <object> >(), It.IsAny <DynamoDBOperationConfig>())).Returns((string key, QueryOperator op, IEnumerable <object> param, DynamoDBOperationConfig config) =>
            {
                CurrentWeek++;
                Week week = new Week()
                {
                    StartDate = (DateTime)param.ElementAt(0),
                    EndDate   = (DateTime)param.ElementAt(1)
                };

                Weeks.Add(CurrentWeek, week);
                return(weightQueue.Dequeue());
            });

            context.Setup(D => D.LoadAsync <WeighInUser>(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <CancellationToken>())).Returns((string a, string b, object c) =>
            {
                ActualUserId     = a;
                ActualFirstName  = b;
                WeighInUser user = new WeighInUser()
                {
                    UserId             = a,
                    FirstName          = b,
                    UserKey            = "TestKey",
                    StartingWeight     = 88.8m,
                    StartingWeightDate = new DateTime(2018, 7, 16)
                };
                return(Task.FromResult <WeighInUser>(user));
            });

            TestAwsFactory factory = new TestAwsFactory()
            {
                DynamoDBContext = context.Object
            };

            return(factory);
        }