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);
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); } }
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); }
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); }
public ValuesController(DynamoRecipeService service, ILogger <ValuesController> logger) { this.RecipeService = service; this.Logger = logger; }