コード例 #1
0
        public async Task SaveRecipe_NoId()
        {
            var    moq      = new Mock <IDynamoDBContext>();
            Recipe callback = null;

            moq.SetupAllProperties();
            moq.Setup(s =>
                      s.SaveAsync(It.IsAny <Recipe>(), It.IsAny <CancellationToken>()))
            .Callback((Recipe r, CancellationToken ct) => { callback = r; });

            var recipeService = new DynamoRecipeService(null);

            DynamoRecipeService.Initialized = true;
            recipeService.SetupMockContext(moq.Object);

            var recipe = new Recipe
            {
                Name           = "Test Recipe",
                LastUpdateTime = DateTime.UtcNow,
                UserId         = "123",
                CookTimeMins   = 11,
                PrepTimeMins   = 22,
                Servings       = 99
            };

            var result = await recipeService.SaveRecipe(recipe);

            Assert.True(result);
            Assert.NotNull(callback);
            Assert.NotEqual(default, callback.EntityId);
コード例 #2
0
        public async void TestSave_Create_Delete()
        {
            var moq = new Moq.Mock <IAmazonDynamoDB>();

            moq.SetupAllProperties();
            moq.Setup(s =>
                      s.DeleteItemAsync(It.IsAny <DeleteItemRequest>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(new DeleteItemResponse {
                HttpStatusCode = System.Net.HttpStatusCode.OK
            });

            moq.Setup(s =>
                      s.PutItemAsync(It.IsAny <PutItemRequest>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(new PutItemResponse {
                HttpStatusCode = System.Net.HttpStatusCode.OK
            });

            moq.Setup(s =>
                      s.QueryAsync(It.IsAny <QueryRequest>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(new QueryResponse {
                HttpStatusCode = System.Net.HttpStatusCode.OK,
            });

            var recipeService = new DynamoRecipeService(moq.Object);

            var recipe = new Recipe()
            {
                Name           = "Test Recipe",
                LastUpdateTime = DateTime.UtcNow,
                UserId         = "123",
                RecipeId       = 456,
                CookTimeMins   = 11,
                PrepTimeMins   = 22,
                Servings       = 99
            };

            try
            {
                var saved = await recipeService.SaveRecipe(recipe);

                Assert.True(saved);

                //var retrieved = await recipeService.RetrieveRecipe(recipe.UserId, recipe.RecipeId);
                //var equal = recipe.Equals(retrieved);
                //Assert.True(equal);
            }
            finally
            {
                //var deleted = await recipeService.DeleteRecipe(recipe);
                //Assert.True(deleted);
            }
        }
コード例 #3
0
        public void EnsureTableExists_True()
        {
            DynamoRecipeService.Initialized = false;
            var moq = new Mock <IAmazonDynamoDB>();

            moq.SetupAllProperties();
            moq.Setup(s =>
                      s.ListTablesAsync(It.IsAny <ListTablesRequest>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(new ListTablesResponse {
                TableNames = new List <string> {
                    "Recipe", "Person", "Meal", "Plan", "Whatever"
                }, HttpStatusCode = HttpStatusCode.OK
            });

            var exists = DynamoRecipeService.EnsureTablesExists(moq.Object);

            Assert.True(exists);
        }
コード例 #4
0
        public void EnsureTableExists_False()
        {
            DynamoRecipeService.Initialized = false;
            var moq = new Mock <IAmazonDynamoDB>();

            moq.SetupAllProperties();
            moq.Setup(s =>
                      s.ListTablesAsync(It.IsAny <ListTablesRequest>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(new ListTablesResponse {
                TableNames = new List <string> {
                    "NOTHING"
                }
            });
            moq.Setup(s =>
                      s.CreateTableAsync(It.IsAny <CreateTableRequest>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(new CreateTableResponse {
                HttpStatusCode = HttpStatusCode.BadRequest
            });

            var exists = DynamoRecipeService.EnsureTablesExists(moq.Object);

            Assert.False(exists);
        }
コード例 #5
0
 public ValuesController(DynamoRecipeService service,
                         ILogger <ValuesController> logger)
 {
     this.RecipeService = service;
     this.Logger        = logger;
 }