-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[RSN-38] - Create services (address, comment, objecttype, participant…
…, role, user*) (#19) * Created services classes and added TODO methods for each class * Created basic CRUD methods * Changed methods returing types, checks for null * Checks if user already exists in db etc., created tests for services * Fixed unit test * Changed type taken by the services, new, improved tests for services * Final fixes and changed unit tests for methods with foreign keys * Changed delete method to return bool, fixed typos and other problems based on PR review * Added brackets one line ifs and added delete method for ObjectTypeService * Revert "Added brackets to one line ifs, updated delete method in ObjectTypeService" This reverts commit 1c69f11, reversing changes made to 1a58a27. * Created services classes and added TODO methods for each class * Created basic CRUD methods * Changed methods returing types, checks for null * Checks if user already exists in db etc., created tests for services * Fixed unit test * Changed type taken by the services, new, improved tests for services * Final fixes and changed unit tests for methods with foreign keys * Changed delete method to return bool, fixed typos and other problems based on PR review * Added brackets one line ifs and added delete method for ObjectTypeService * Updated services after scaffold Updated services and tests, User service not finished, enums not working * Workflow fixes * Unit test fix * Working user service * Deleted test controller * Transaction for user update service * Updated services and created mappers * Services throw errors Services now throw errors if something is not right (dto null, data not found in db), updated unit tests and created custom exception classes * Mappers function name change * Update based on review * Added GetUserByUsername function * Changed exceptions directory location
- Loading branch information
Showing
25 changed files
with
1,906 additions
and
184 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
294 changes: 294 additions & 0 deletions
294
Server/ReasnAPI/ReasnAPI.Tests/Services/AddressServiceTests.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,294 @@ | ||
using Moq; | ||
using Moq.EntityFrameworkCore; | ||
using ReasnAPI.Exceptions; | ||
using ReasnAPI.Models.Database; | ||
using ReasnAPI.Models.DTOs; | ||
using ReasnAPI.Services; | ||
|
||
namespace ReasnAPI.Tests.Services; | ||
|
||
[TestClass] | ||
public class AddressServiceTests | ||
{ | ||
[TestMethod] | ||
public void GetAddressById_AddressExists_AddressReturned() | ||
{ | ||
var mockContext = new Mock<ReasnContext>(); | ||
|
||
var address = new Address | ||
{ | ||
Id = 1, | ||
City = "City", | ||
Country = "Country", | ||
State = "State", | ||
Street = "Street", | ||
ZipCode = "ZipCode" | ||
}; | ||
|
||
var fakeAddress = new FakeDbSet<Address> { address }; | ||
|
||
mockContext.Setup(c => c.Addresses).Returns(fakeAddress); | ||
|
||
var addressService = new AddressService(mockContext.Object); | ||
|
||
var result = addressService.GetAddressById(1); | ||
|
||
Assert.IsNotNull(result); | ||
Assert.AreEqual("City", result.City); | ||
Assert.AreEqual("Country", result.Country); | ||
Assert.AreEqual("State", result.State); | ||
Assert.AreEqual("Street", result.Street); | ||
Assert.AreEqual("ZipCode", result.ZipCode); | ||
} | ||
|
||
[TestMethod] | ||
public void GetAddressById_AddressDoesNotExist_NullReturned() | ||
{ | ||
var mockContext = new Mock<ReasnContext>(); | ||
mockContext.Setup(c => c.Addresses).ReturnsDbSet([]); | ||
|
||
var addressService = new AddressService(mockContext.Object); | ||
|
||
Assert.ThrowsException<NotFoundException>(() => addressService.GetAddressById(1)); | ||
} | ||
|
||
[TestMethod] | ||
public void GetAllAddresses_AddressesExist_AddressesReturned() | ||
{ | ||
var mockContext = new Mock<ReasnContext>(); | ||
|
||
var address1 = new Address | ||
{ | ||
Id = 1, | ||
City = "City", | ||
Country = "Country", | ||
State = "State", | ||
Street = "Street", | ||
ZipCode = "ZipCode" | ||
}; | ||
|
||
var address2 = new Address | ||
{ | ||
Id = 2, | ||
City = "City", | ||
Country = "Country", | ||
State = "State", | ||
Street = "Street", | ||
ZipCode = "ZipCode" | ||
}; | ||
|
||
mockContext.Setup(c => c.Addresses).ReturnsDbSet([address1, address2]); | ||
|
||
var addressService = new AddressService(mockContext.Object); | ||
|
||
var result = addressService.GetAllAddresses(); | ||
|
||
Assert.IsNotNull(result); | ||
Assert.AreEqual(2, result.Count()); | ||
} | ||
|
||
[TestMethod] | ||
public void GetAllAddresses_NoAddresses_EmptyListReturned() | ||
{ | ||
var mockContext = new Mock<ReasnContext>(); | ||
mockContext.Setup(c => c.Addresses).ReturnsDbSet([]); | ||
|
||
var addressService = new AddressService(mockContext.Object); | ||
|
||
var result = addressService.GetAllAddresses(); | ||
|
||
Assert.IsNotNull(result); | ||
Assert.AreEqual(0, result.Count()); | ||
} | ||
|
||
[TestMethod] | ||
public void GetAddressesByFilter_AddressesExist_AddressesReturned() | ||
{ | ||
var mockContext = new Mock<ReasnContext>(); | ||
|
||
var address1 = new Address | ||
{ | ||
Id = 1, | ||
City = "City", | ||
Country = "Country", | ||
State = "State", | ||
Street = "Street", | ||
ZipCode = "ZipCode" | ||
}; | ||
|
||
var address2 = new Address | ||
{ | ||
Id = 2, | ||
City = "City", | ||
Country = "Country", | ||
State = "State", | ||
Street = "Street", | ||
ZipCode = "ZipCode" | ||
}; | ||
|
||
mockContext.Setup(c => c.Addresses).ReturnsDbSet([address1, address2]); | ||
var addressService = new AddressService(mockContext.Object); | ||
|
||
var result = addressService.GetAddressesByFilter(r => r.Id == 1).ToList(); | ||
|
||
Assert.IsNotNull(result); | ||
Assert.AreEqual(1, result.Count); | ||
} | ||
|
||
[TestMethod] | ||
public void GetAddressesByFilter_NoAddresses_EmptyListReturned() | ||
{ | ||
var mockContext = new Mock<ReasnContext>(); | ||
mockContext.Setup(c => c.Addresses).ReturnsDbSet([]); | ||
|
||
var addressService = new AddressService(mockContext.Object); | ||
|
||
var result = addressService.GetAddressesByFilter(r => r.Id == 1); | ||
|
||
Assert.IsNotNull(result); | ||
Assert.AreEqual(0, result.Count()); | ||
} | ||
|
||
[TestMethod] | ||
public void CreateAddress_AddressCreated_AddressReturned() | ||
{ | ||
var mockContext = new Mock<ReasnContext>(); | ||
mockContext.Setup(c => c.Addresses).ReturnsDbSet([]); | ||
|
||
var addressService = new AddressService(mockContext.Object); | ||
|
||
var addressDto = new AddressDto | ||
{ | ||
City = "City", | ||
Country = "Country", | ||
State = "State", | ||
Street = "Street", | ||
ZipCode = "ZipCode" | ||
}; | ||
|
||
var result = addressService.CreateAddress(addressDto); | ||
|
||
Assert.IsNotNull(result); | ||
Assert.AreEqual("City", result.City); | ||
Assert.AreEqual("Country", result.Country); | ||
Assert.AreEqual("State", result.State); | ||
Assert.AreEqual("Street", result.Street); | ||
Assert.AreEqual("ZipCode", result.ZipCode); | ||
} | ||
|
||
[TestMethod] | ||
public void CreateAddress_AddressDtoIsNull_NullReturned() | ||
{ | ||
var mockContext = new Mock<ReasnContext>(); | ||
mockContext.Setup(c => c.Addresses).ReturnsDbSet([]); | ||
|
||
var addressService = new AddressService(mockContext.Object); | ||
|
||
Assert.ThrowsException<ArgumentNullException>(() => addressService.CreateAddress(null)); | ||
} | ||
|
||
[TestMethod] | ||
public void UpdateAddress_AddressUpdated_AddressReturned() | ||
{ | ||
var mockContext = new Mock<ReasnContext>(); | ||
|
||
var address = new Address | ||
{ | ||
Id = 1, | ||
City = "City", | ||
Country = "Country", | ||
State = "State", | ||
Street = "Street", | ||
ZipCode = "ZipCode" | ||
}; | ||
|
||
mockContext.Setup(c => c.Addresses).ReturnsDbSet([address]); | ||
|
||
var addressService = new AddressService(mockContext.Object); | ||
|
||
var addressDto = new AddressDto | ||
{ | ||
City = "City2", | ||
Country = "Country2", | ||
State = "State2", | ||
Street = "Street2", | ||
ZipCode = "ZipCode2" | ||
}; | ||
|
||
var result = addressService.UpdateAddress(1, addressDto); | ||
|
||
Assert.IsNotNull(result); | ||
Assert.AreEqual("City2", result.City); | ||
Assert.AreEqual("Country2", result.Country); | ||
Assert.AreEqual("State2", result.State); | ||
Assert.AreEqual("Street2", result.Street); | ||
Assert.AreEqual("ZipCode2", result.ZipCode); | ||
} | ||
|
||
[TestMethod] | ||
public void UpdateAddress_AddressDoesNotExist_NullReturned() | ||
{ | ||
var mockContext = new Mock<ReasnContext>(); | ||
mockContext.Setup(c => c.Addresses).ReturnsDbSet([]); | ||
|
||
var addressService = new AddressService(mockContext.Object); | ||
|
||
var addressDto = new AddressDto | ||
{ | ||
City = "City2", | ||
Country = "Country2", | ||
State = "State2", | ||
Street = "Street2", | ||
ZipCode = "ZipCode2" | ||
}; | ||
|
||
Assert.ThrowsException<NotFoundException>(() => addressService.UpdateAddress(1, addressDto)); | ||
} | ||
|
||
[TestMethod] | ||
public void UpdateAddress_AddressDtoIsNull_NullReturned() | ||
{ | ||
var mockContext = new Mock<ReasnContext>(); | ||
mockContext.Setup(c => c.Addresses).ReturnsDbSet([]); | ||
|
||
var addressService = new AddressService(mockContext.Object); | ||
|
||
Assert.ThrowsException<ArgumentNullException>(() => addressService.UpdateAddress(1, null)); | ||
} | ||
|
||
[TestMethod] | ||
public void DeleteAddress_AdddressExists_AddressDeleted() | ||
{ | ||
var mockContext = new Mock<ReasnContext>(); | ||
|
||
var address = new Address | ||
{ | ||
Id = 1, | ||
City = "City", | ||
Country = "Country", | ||
State = "State", | ||
Street = "Street", | ||
ZipCode = "ZipCode" | ||
}; | ||
|
||
mockContext.Setup(c => c.Addresses).ReturnsDbSet([address]); | ||
|
||
var addressService = new AddressService(mockContext.Object); | ||
|
||
addressService.DeleteAddress(1); | ||
|
||
mockContext.Verify(c => c.SaveChanges(), Times.Once); | ||
} | ||
|
||
[TestMethod] | ||
public void DeleteAddress_AddressDoesNotExist_NothingHappens() | ||
{ | ||
var mockContext = new Mock<ReasnContext>(); | ||
mockContext.Setup(c => c.Addresses).ReturnsDbSet([]); | ||
|
||
var addressService = new AddressService(mockContext.Object); | ||
|
||
Assert.ThrowsException<NotFoundException>(() => addressService.DeleteAddress(1)); | ||
mockContext.Verify(c => c.SaveChanges(), Times.Never); | ||
} | ||
} |
Oops, something went wrong.