-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathControllerActionsTests.cs
More file actions
79 lines (70 loc) · 3.33 KB
/
ControllerActionsTests.cs
File metadata and controls
79 lines (70 loc) · 3.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
using System;
using System.Collections.Generic;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using FluentAssertions;
using Moq;
using NUnit.Framework;
using ProductsWithRouting.Controllers;
using ProductsWithRouting.Models;
using ProductsWithRouting.Services;
namespace ProdutcsWithRoutingTests
{
class ControllerActionsTests
{
private Mock<Data> dataServiceMock = new Mock<Data>();
private ProductsController productsController;
[SetUp]
public void Setup()
{
var field = typeof(Data)
.GetField("Products", BindingFlags.Instance | BindingFlags.Public);
field.SetValue(dataServiceMock.Object,
new List<Product>()
{
new Product() {Id = 1, Name = "Product2", Description = "ProductDescription"},
new Product() {Id = 2, Name = "Product3", Description = "ProductDescription"},
new Product() {Id = 3, Name = "Product4", Description = "ProductDescription"},
new Product() {Id = 4, Name = "Product5", Description = "ProductDescription"},
new Product() {Id = 5, Name = "Product6", Description = "ProductDescription"},
new Product() {Id = 6, Name = "Product1", Description = "ProductDescription"},
});
productsController = new ProductsController(dataServiceMock.Object);
}
[Test]
public void ProductsCreate_ValidProduct_AddsSuccessfully()
{
Product newProduct = new Product() {Id = 7, Name = "Product2", Description = "ProductDescription"};
productsController.Create(new Product());
//Assert
dataServiceMock.Object.Products.Should().Contain(product => product.Name == newProduct.Name &&
product.Description == newProduct.Description);
dataServiceMock.Object.Products.Count.Should().Be(7);
}
private static List<Product> _editProducts = new List<Product>()
{
new Product() { Id = 4, Name = "Product5555", Description = "Product Description" },
new Product() { Id = 5, Name = "Product6666", Description = "Product Description" },
};
[TestCaseSource(nameof(_editProducts))]
public void ProductsEdit_ValidProduct_AddsSuccessfully( Product editProduct)
{
productsController.Edit(editProduct);
//Assert
dataServiceMock.Object.Products.Should().Contain(product => product.Name == editProduct.Name &&
product.Description == editProduct.Description &&
product.Id == editProduct.Id);
dataServiceMock.Object.Products.Count.Should().Be(6);
}
[TestCase(2)]
[TestCase(3)]
public void ProductsDelete_ValidProduct_AddsSuccessfully(int productId)
{
productsController.Delete(productId);
//Assert
dataServiceMock.Object.Products.Should().NotContain(product => product.Id == productId);
dataServiceMock.Object.Products.Count.Should().Be(5);
}
}
}