Skip to content
This repository has been archived by the owner on Jun 25, 2022. It is now read-only.

Commit

Permalink
test(back-end): Rewrite Activities controller tests
Browse files Browse the repository at this point in the history
See also: #119
  • Loading branch information
CarlosPavajeau committed Jan 17, 2021
1 parent 7b233f1 commit f1614e7
Showing 1 changed file with 130 additions and 79 deletions.
209 changes: 130 additions & 79 deletions Kaizen.Test/Controllers/ActivitiesControllerTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,13 @@ public void SetUp()

_activitiesController = new ActivitiesController(_activitiesRepository.Object, _clientsRepository.Object,
_unitWork.Object, ServiceProvider.GetService<IMapper>());

SetUpActivitiesRepository();
SetUpClientsRepository();
SetUpUnitWork();
}

[Test]
public async Task GetActivities()
private void SetUpActivitiesRepository()
{
_activitiesRepository.Setup(r => r.GetAll()).Returns(new TestAsyncEnumerable<Activity>(new List<Activity>
{
Expand All @@ -61,37 +64,14 @@ public async Task GetActivities()
}
}).AsQueryable());

OkObjectResult result = (await _activitiesController.GetActivities()).Result as OkObjectResult;

Assert.NotNull(result);
Assert.NotNull(result.Value);

Assert.IsInstanceOf<IEnumerable<ActivityViewModel>>(result.Value);

IEnumerable<ActivityViewModel> value = result.Value as IEnumerable<ActivityViewModel>;
Assert.NotNull(value);
Assert.AreEqual(2, value.Count());
}

[Test]
public async Task GetActivity()
{
_activitiesRepository.Setup(r => r.FindByIdAsync(1)).ReturnsAsync(new Activity
{
Code = 1,
ClientId = "1007870922"
ClientId = "1007870922",
State = ActivityState.Pending
});
_activitiesRepository.Setup(r => r.FindByIdAsync(3)).ReturnsAsync((Activity)null);

ActionResult<ActivityViewModel> result = await _activitiesController.GetActivity(1);

Assert.NotNull(result);
Assert.NotNull(result.Value);
Assert.AreEqual(1, result.Value.Code);
}

[Test]
public async Task EmployeeActivities()
{
_activitiesRepository.Setup(r => r.GetPendingEmployeeActivities("32752423", It.IsAny<DateTime>()))
.ReturnsAsync(new[]
{
Expand All @@ -102,15 +82,6 @@ public async Task EmployeeActivities()
}
});

OkObjectResult result = (await _activitiesController.EmployeeActivities("32752423", DateTime.Now)).Result as OkObjectResult;

Assert.NotNull(result);
Assert.NotNull(result.Value);
}

[Test]
public async Task ClientActivities()
{
_activitiesRepository.Setup(r => r.GetPendingClientActivities("1007870922")).ReturnsAsync(new List<Activity>
{
new()
Expand All @@ -120,15 +91,6 @@ public async Task ClientActivities()
}
});

OkObjectResult result = (await _activitiesController.ClientActivities("1007870922")).Result as OkObjectResult;

Assert.NotNull(result);
Assert.NotNull(result.Value);
}

[Test]
public async Task AppliedClientActivities()
{
_activitiesRepository.Setup(r => r.GetAppliedClientActivities("1007870922")).ReturnsAsync(new List<Activity>
{
new()
Expand All @@ -138,51 +100,122 @@ public async Task AppliedClientActivities()
}
});

OkObjectResult result = (await _activitiesController.AppliedClientActivities("1007870922")).Result as OkObjectResult;

Assert.NotNull(result);
Assert.NotNull(result.Value);
_activitiesRepository.Setup(r => r.Insert(It.IsAny<Activity>())).Verifiable();
_activitiesRepository.Setup(r => r.Update(It.IsAny<Activity>())).Verifiable();
}

[Test]
public async Task PutActivity()
private void SetUpClientsRepository()
{
_activitiesRepository.Setup(r => r.FindByIdAsync(1)).ReturnsAsync(new Activity
_clientsRepository.Setup(r => r.GetClientWithUser("1007870922")).ReturnsAsync(new Client
{
Code = 1,
ClientId = "1007870922",
State = ActivityState.Pending
Id = "1007870922",
FirstName = "Manolo",
User = new ApplicationUser
{
Id = "111-222",
UserName = "client"
}
});
_activitiesRepository.Setup(r => r.Update(It.IsAny<Activity>())).Verifiable();

_clientsRepository.Setup(r => r.GetClientWithUser("1007870930")).ReturnsAsync((Client)null);
}

private void SetUpUnitWork()
{
_unitWork.Setup(r => r.SaveAsync()).Returns(Task.CompletedTask);
}

[Test]
public async Task Get_All_Activities()
{
OkObjectResult result = (await _activitiesController.GetActivities()).Result as OkObjectResult;

Assert.IsNotNull(result);
Assert.IsNotNull(result.Value);

Assert.IsInstanceOf<IEnumerable<ActivityViewModel>>(result.Value);

IEnumerable<ActivityViewModel> value = result.Value as IEnumerable<ActivityViewModel>;
Assert.IsNotNull(value);
Assert.AreEqual(2, value.Count());
}

[Test]
public async Task Get_Existing_Activity()
{
ActionResult<ActivityViewModel> result = await _activitiesController.GetActivity(1);

Assert.IsNotNull(result);
Assert.IsNotNull(result.Value);
Assert.AreEqual(1, result.Value.Code);
}

[Test]
public async Task Get_Non_Existent_Activity()
{
ActionResult<ActivityViewModel> result = await _activitiesController.GetActivity(3);

Assert.IsNotNull(result);
Assert.IsNull(result.Value);
Assert.IsInstanceOf<NotFoundObjectResult>(result.Result);
}

[Test]
public async Task Get_Employee_Activities()
{
OkObjectResult result = (await _activitiesController.EmployeeActivities("32752423", DateTime.Now)).Result as OkObjectResult;

Assert.IsNotNull(result);
Assert.IsNotNull(result.Value);
}

[Test]
public async Task Get_Client_Activities()
{
OkObjectResult result = (await _activitiesController.ClientActivities("1007870922")).Result as OkObjectResult;

Assert.IsNotNull(result);
Assert.IsNotNull(result.Value);
}

[Test]
public async Task Get_Applied_Client_Activities()
{
OkObjectResult result = (await _activitiesController.AppliedClientActivities("1007870922")).Result as OkObjectResult;

Assert.IsNotNull(result);
Assert.IsNotNull(result.Value);
}

[Test]
public async Task Update_Existing_Activity()
{
ActionResult<ActivityViewModel> result = await _activitiesController.PutActivity(1, new ActivityEditModel
{
State = ActivityState.Accepted,
});

Assert.NotNull(result);
Assert.NotNull(result.Value);
Assert.IsNotNull(result);
Assert.IsNotNull(result.Value);
Assert.AreEqual(ActivityState.Accepted, result.Value.State);
}

[Test]
public async Task PostActivity()
public async Task Update_Non_Existent_Activity()
{
_clientsRepository.Setup(r => r.GetClientWithUser("1007870922")).ReturnsAsync(new Client
var result = await _activitiesController.PutActivity(3, new ActivityEditModel
{
Id = "1007870922",
FirstName = "Manolo",
User = new ApplicationUser
{
Id = "111-222",
UserName = "client"
}
State = ActivityState.Accepted,
});
_activitiesRepository.Setup(r => r.Insert(It.IsAny<Activity>())).Verifiable();
_unitWork.Setup(r => r.SaveAsync()).Returns(Task.CompletedTask);

Assert.IsNotNull(result);
Assert.IsNull(result.Value);
Assert.IsInstanceOf<BadRequestObjectResult>(result.Result);
}

[Test]
public async Task Save_Activity_With_Existing_Client()
{
ActionResult<ActivityViewModel> result = await _activitiesController.PostActivity(new ActivityInputModel
{
ClientId = "1007870922",
Expand All @@ -198,25 +231,43 @@ public async Task PostActivity()
}
});

Assert.NotNull(result);
Assert.NotNull(result.Value);
Assert.IsNotNull(result);
Assert.IsNotNull(result.Value);
}

[Test]
public async Task DeleteActivity()
public async Task Save_Activity_With_Non_Existing_Client()
{
_activitiesRepository.Setup(r => r.FindByIdAsync(1)).ReturnsAsync(new Activity
var result = await _activitiesController.PostActivity(new ActivityInputModel
{
Code = 1,
ClientId = "1007870922"
ClientId = "1007870930",
Date = DateTime.Now,
ServiceCodes = new List<string>
{
"123",
"321"
},
EmployeeCodes = new List<string>
{
"1007870945"
}
});

Assert.IsNotNull(result);
Assert.IsNull(result.Value);
Assert.IsInstanceOf<NotFoundObjectResult>(result.Result);
}

[Test]
public async Task DeleteActivity()
{
_activitiesRepository.Setup(r => r.Delete(It.IsAny<Activity>())).Verifiable();
_unitWork.Setup(r => r.SaveAsync()).Returns(Task.CompletedTask);

var result = await _activitiesController.DeleteActivity(1);
ActionResult<ActivityViewModel> result = await _activitiesController.DeleteActivity(1);

Assert.NotNull(result);
Assert.NotNull(result.Value);
Assert.IsNotNull(result);
Assert.IsNotNull(result.Value);
}
}
}

0 comments on commit f1614e7

Please sign in to comment.