public void RemoveRange_ShouldFail_WhenRemovingAllNonExistingEntities(string ownerId1, string firstName1, string lastName1, string ownerId2, string firstName2, string lastName2) { //Arrange Guid wrongGuid = Guid.Parse("c3b922ac-a2bf-4b75-a9dc-5b3c44798264"); Guid ownerGuid1 = Guid.Parse(ownerId1); Guid ownerGuid2 = Guid.Parse(ownerId2); tblOwner owner1 = new tblOwner() { Id = ownerGuid1, FirstName = firstName1, LastName = lastName1 }; tblOwner owner2 = new tblOwner() { Id = ownerGuid2, FirstName = firstName2, LastName = lastName2 }; var entities = new tblOwner[] { owner1, owner2 }; _mockOwnerRepository.Setup(x => x.FindAsync(It.IsAny <Expression <Func <tblOwner, bool> > >())) .ReturnsAsync(new tblOwner[] { owner1 }); //Act var task = _service.RemoveRange(entities.Select(x => x.Id)); //Assert _mockOwnerRepository.Verify(x => x.FindAsync(It.IsAny <Expression <Func <tblOwner, bool> > >()), Times.Once()); Assert.ThrowsAsync <InvalidOperationException>(() => task); _mockOwnerRepository.Verify(x => x.RemoveRange(entities), Times.Never()); Assert.False(task.IsCompletedSuccessfully); }
public void Update_ShouldSucceed_WithMatchingEntity(string ownerId1, string firstName1, string lastName1, string firstName2, string lastName2) { //Arrange Guid ownerGuid1 = Guid.Parse(ownerId1); tblOwner owner1 = new tblOwner() { Id = ownerGuid1, FirstName = firstName1, LastName = lastName1 }; tblOwner matchedEntity = new tblOwner { Id = ownerGuid1, FirstName = firstName1, LastName = lastName1 }; _mockOwnerRepository.Setup(x => x.GetByIdAsync(It.IsAny <Guid>())) .ReturnsAsync(matchedEntity); //Act var result = _service.Update(owner1); //Assert _mockOwnerRepository.Verify(x => x.GetByIdAsync(It.IsAny <Guid>()), Times.Once()); //_mockPetRepository.Verify(x => x.FindAsync(It.IsAny<Expression<Func<tblPet, bool>>>()), Times.Once()); //_mockPetRepository.Verify(x => x.Update(It.IsAny<IEnumerable<tblPet>>()));//TODO: Update all pets too? _mockOwnerRepository.Verify(x => x.Update(owner1), Times.Once()); Assert.True(result.IsCompletedSuccessfully); }
public void AddRange_ShouldSucceed_WithUnusedIds(string ownerId1, string firstName1, string lastName1, string ownerId2, string firstName2, string lastName2) { //Arrange Guid wrongGuid = Guid.Parse("c3b922ac-a2bf-4b75-a9dc-5b3c44798264"); Guid ownerGuid1 = Guid.Parse(ownerId1); Guid ownerGuid2 = Guid.Parse(ownerId2); _mockOwnerRepository.Setup(x => x.FindAsync(It.IsAny <Expression <Func <tblOwner, bool> > >())) .ReturnsAsync(Enumerable.Empty <tblOwner>()); tblOwner owner1 = new tblOwner() { Id = ownerGuid1, FirstName = firstName1, LastName = lastName1 }; tblOwner owner2 = new tblOwner() { Id = ownerGuid2, FirstName = firstName2, LastName = lastName2 }; var entities = new tblOwner[] { owner1, owner2 }; //Act var result = _service.AddRange(entities); //Assert _mockOwnerRepository.Verify(x => x.FindAsync(It.IsAny <Expression <Func <tblOwner, bool> > >()), Times.Once()); _mockOwnerRepository.Verify(x => x.AddRange(entities), Times.Once()); Assert.True(result.IsCompletedSuccessfully); }
public void RemoveRange_ShouldSucceed_WithMatchingIds(string ownerId1, string firstName1, string lastName1, string ownerId2, string firstName2, string lastName2) { //Arrange Guid ownerGuid1 = Guid.Parse(ownerId1); Guid ownerGuid2 = Guid.Parse(ownerId2); tblOwner owner1 = new tblOwner() { Id = ownerGuid1, FirstName = firstName1, LastName = lastName1 }; tblOwner owner2 = new tblOwner() { Id = ownerGuid2, FirstName = firstName2, LastName = lastName2 }; var entities = new tblOwner[] { owner1, owner2 }; _mockOwnerRepository.Setup(x => x.FindAsync(It.IsAny <Expression <Func <tblOwner, bool> > >())) .ReturnsAsync(entities); //Act var result = _service.RemoveRange(entities.Select(x => x.Id)); //Assert _mockOwnerRepository.Verify(x => x.FindAsync(It.IsAny <Expression <Func <tblOwner, bool> > >()), Times.Once()); _mockPetRepository.Verify(x => x.FindAsync(It.IsAny <Expression <Func <tblPet, bool> > >()), Times.Once()); _mockPetRepository.Verify(x => x.RemoveRange(It.IsAny <IEnumerable <tblPet> >())); _mockOwnerRepository.Verify(x => x.RemoveRange(entities), Times.Once()); Assert.True(result.IsCompletedSuccessfully); }
public void Remove_ShouldSucceed_WithMatchingId(string ownerId) { //Arrange Guid ownerGuid = Guid.Parse(ownerId); tblOwner existingOwner = new tblOwner() { Id = ownerGuid, FirstName = "bill", LastName = "ted" }; existingOwner.Pets.Add(new tblPet { Id = Guid.Parse("84ffdbe4-27ca-4c0a-b2c8-aa7fb1e7c711"), Name = "Clifford", FKOwnerId = ownerGuid, FKAnimalTypeId = 1 }); _mockOwnerRepository.Reset(); _mockOwnerRepository.Setup(x => x.GetByIdAsync(ownerGuid)) .ReturnsAsync(existingOwner); //Act var result = _service.Remove(ownerGuid); //Assert _mockOwnerRepository.Verify(x => x.Remove(existingOwner), Times.Once()); Assert.True(result.IsCompletedSuccessfully); }
public void Update_Test_ShouldSucceed_WhenEntityExists(string id, string firstName, string lastName) { //Arrange Guid guid = Guid.Parse(id); var existingOwners = _context.Set <tblOwner>().ToList(); var oldOwner = _context.Set <tblOwner>().FirstOrDefault(x => x.Id == guid); oldOwner.FirstName = firstName; oldOwner.LastName = lastName; var oldData = new tblOwner { Id = guid, FirstName = "Brian", LastName = "Lara" }; var newData = new tblOwner { Id = guid, FirstName = firstName, LastName = lastName }; Repository <tblOwner> ownerRepo = new Repository <tblOwner>(_context); //Act ownerRepo.Update(oldOwner); var result = _context.Set <tblOwner>().FirstOrDefault(x => x.Id == guid); //Assert Assert.Equal(firstName, result.FirstName); Assert.Equal(lastName, result.LastName); }
public async Task Update(tblOwner owner) { if (await _ownerRepository.GetByIdAsync(owner.Id) == null) { throw new EntityNotFoundException($"Could not find owner with id {owner.Id}"); } ; await _ownerRepository.Update(owner); }
public async Task <tblOwner> Add(tblOwner entity) { if (entity == null) { throw new ArgumentNullException("Cannot add blank owner"); } if (await _ownerRepository.GetByIdAsync(entity.Id).ConfigureAwait(false) != null) { throw new InvalidOperationException("Owner already exists."); } return(await _ownerRepository.Add(entity)); }
public void Update_Test_ShouldFail_WhenWasntFetchedFromDb(string id, string firstName, string lastName) { //Arrange Guid guid = Guid.Parse(id); var existingOwners = _context.Set <tblOwner>().ToList(); var oldOwner = _context.Set <tblOwner>().FirstOrDefault(x => x.Id == guid); oldOwner.FirstName = firstName; oldOwner.LastName = lastName; var newData = new tblOwner { Id = guid, FirstName = firstName, LastName = lastName }; Repository <tblOwner> ownerRepo = new Repository <tblOwner>(_context); //Act/Assert Assert.ThrowsAsync <InvalidOperationException>(() => ownerRepo.Update(newData)); }
public void Remove_ShouldFail_IfOwnerDoesntExists(string ownerId, string firstName, string lastName) { //Arrange Guid wrongGuid = Guid.Parse("c3b922ac-a2bf-4b75-a9dc-5b3c44798264"); Guid guid = Guid.Parse(ownerId); tblOwner fakeOwner = new tblOwner { Id = guid, FirstName = firstName, LastName = lastName }; _mockOwnerRepository.Setup(x => x.GetByIdAsync(guid)) .ReturnsAsync((tblOwner)null); //Act var task = _service.Remove(guid); //Assert Assert.ThrowsAnyAsync <InvalidOperationException>(() => task); _mockPetRepository.Verify(x => x.RemoveRange(It.IsAny <IEnumerable <tblPet> >()), Times.Never()); _mockOwnerRepository.Verify(x => x.Remove(It.IsAny <tblOwner>()), Times.Never()); }
public void Add_ShouldFail_IfOwnerAlreadyExists(string ownerId, string firstName, string lastName) { //Arrange Guid guid = Guid.Parse(ownerId); tblOwner fakeOwner = new tblOwner { Id = guid, FirstName = firstName, LastName = lastName }; _mockOwnerRepository.Setup(x => x.GetByIdAsync(guid)) .ReturnsAsync(fakeOwner); //Act var task = _service.Add(fakeOwner); //Assert Assert.ThrowsAnyAsync <InvalidOperationException>(() => task); _mockOwnerRepository.Verify(x => x.GetByIdAsync(It.IsAny <Guid>()), Times.Once()); _mockOwnerRepository.Verify(x => x.Add(It.IsAny <tblOwner>()), Times.Never()); Assert.False(task.IsCompletedSuccessfully); }
public void Add_ShouldSucceed_WithUnusedId(string ownerId, string petId, string firstName, string lastName) { //Arrange Guid wrongGuid = Guid.Parse("c3b922ac-a2bf-4b75-a9dc-5b3c44798264"); Guid ownerGuid = Guid.Parse(ownerId); _mockOwnerRepository.Setup(x => x.GetByIdAsync(ownerGuid)) .ReturnsAsync((tblOwner)null); tblOwner owner = new tblOwner() { Id = ownerGuid, FirstName = firstName, LastName = lastName }; //Act var result = _service.Add(owner); //Assert _mockOwnerRepository.Verify(x => x.GetByIdAsync(ownerGuid), Times.Once()); Assert.True(result.IsCompletedSuccessfully); }
public void GetById_Test_Owners(string id, string firstName, string lastName) { //Arrange Guid guid = Guid.Parse(id); tblOwner expected = new tblOwner { Id = guid, FirstName = firstName, LastName = lastName }; Repository <tblOwner> repo = new Repository <tblOwner>(_context); //Act var result = repo.GetByIdAsync(guid).Result; //Assert Assert.True(result != null); Assert.IsType <tblOwner>(result); Assert.Equal(guid, result.Id); Assert.Equal(firstName, result.FirstName); Assert.Equal(lastName, result.LastName); Assert.Equal($"{firstName} {lastName}", result.FullName);//More of an integration test including the tblOwner entity model Assert.Equal(2, result.Pets.Count()); }
public void GetOwnerByPetId_ShouldPass_WhenIdExists(string petId, string ownerId, string firstName, string lastName, int petCount) { //Arrange Guid petGuid = Guid.Parse(petId); var expected = new tblOwner { Id = Guid.Parse(ownerId), FirstName = firstName, LastName = lastName }; IPetRepository repo = new PetRepository(_context); //Act var result = repo.GetOwnerByPetIdAsync(petGuid).Result; //Assert Assert.True(expected != null); Assert.True(result != null); Assert.IsType <tblOwner>(result); // Assert.Equal/True weren't working so just check that all props match the expected value. Assert.Equal(expected.Id, result.Id); Assert.Equal(expected.FirstName, result.FirstName); Assert.Equal(expected.LastName, result.LastName); Assert.Equal(petCount, result.Pets.Count);//TODO: Assert that the pets are as expected... }