-
Notifications
You must be signed in to change notification settings - Fork 103
Expand file tree
/
Copy pathPersonControllerTests.cs
More file actions
113 lines (96 loc) · 3.72 KB
/
Copy pathPersonControllerTests.cs
File metadata and controls
113 lines (96 loc) · 3.72 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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
using Xunit;
using Moq;
using Blazorcrud.Server.Controllers;
using Blazorcrud.Server.Models;
using Blazorcrud.Shared.Models;
using Microsoft.AspNetCore.Mvc;
using System.Threading.Tasks;
using Blazorcrud.Shared.Data;
using System.Collections.Generic;
namespace Blazorcrud.Server.Tests
{
public class PersonControllerTests
{
private readonly Mock<IPersonRepository> _mockRepo;
private readonly PersonController _controller;
public PersonControllerTests()
{
_mockRepo = new Mock<IPersonRepository>();
_controller = new PersonController(_mockRepo.Object);
}
[Fact]
public void GetPeople_Returns_OkResult_With_PagedResult_Of_Person()
{
// Arrange
var name = "Test";
var page = 1;
var pagedResult = new PagedResult<Person> { Results = new List<Person> { new Person { PersonId = 1, FirstName = "Test" } } };
_mockRepo.Setup(repo => repo.GetPeople(name, page))
.Returns(pagedResult);
// Act
var result = _controller.GetPeople(name, page);
// Assert
var okResult = Assert.IsType<OkObjectResult>(result);
var returnValue = Assert.IsType<PagedResult<Person>>(okResult.Value);
Assert.Single(returnValue.Results);
}
[Fact]
public async Task GetPerson_Returns_OkResult_With_Person()
{
// Arrange
var id = 1;
var person = new Person { PersonId = id, FirstName = "Test" };
_mockRepo.Setup(repo => repo.GetPerson(id))
.ReturnsAsync(person);
// Act
var result = await _controller.GetPerson(id);
// Assert
var okResult = Assert.IsType<OkObjectResult>(result);
var returnValue = Assert.IsType<Person>(okResult.Value);
Assert.Equal(id, returnValue.PersonId);
}
[Fact]
public async Task AddPerson_Returns_OkResult_With_Person()
{
// Arrange
var person = new Person { PersonId = 1, FirstName = "Test" };
_mockRepo.Setup(repo => repo.AddPerson(person))
.ReturnsAsync(person);
// Act
var result = await _controller.AddPerson(person);
// Assert
var okResult = Assert.IsType<OkObjectResult>(result);
var returnValue = Assert.IsType<Person>(okResult.Value);
Assert.Equal(person.PersonId, returnValue.PersonId);
}
[Fact]
public async Task UpdatePerson_Returns_OkResult_With_Person()
{
// Arrange
var person = new Person { PersonId = 1, FirstName = "Test" };
_mockRepo.Setup(repo => repo.UpdatePerson(person))
.ReturnsAsync(person);
// Act
var result = await _controller.UpdatePerson(person);
// Assert
var okResult = Assert.IsType<OkObjectResult>(result);
var returnValue = Assert.IsType<Person>(okResult.Value);
Assert.Equal(person.PersonId, returnValue.PersonId);
}
[Fact]
public async Task DeletePerson_Returns_OkResult_With_Person()
{
// Arrange
var id = 1;
var person = new Person { PersonId = id, FirstName = "Test" };
_mockRepo.Setup(repo => repo.DeletePerson(id))
.ReturnsAsync(person);
// Act
var result = await _controller.DeletePerson(id);
// Assert
var okResult = Assert.IsType<OkObjectResult>(result);
var returnValue = Assert.IsType<Person>(okResult.Value);
Assert.Equal(id, returnValue.PersonId);
}
}
}