public async Task GivenInvalidContractWhenAddingThenContractIsNotAdded() { var contract = new DtoContract { Experience = 1 }; var mock = new Mock<IRepository<Contract>>(); IContractService service = new ContractService(mock.Object, new DefaultSalaryPolicy(), new DefaultSalaryCalculator()); var expected = false; var actual = await service.CreateContractAsync(contract); mock.Verify(m => m.Add(It.IsAny<Contract>()), Times.Never()); mock.Verify(m => m.SaveChangesAsync(), Times.Never()); Assert.AreEqual(expected, actual); }
public async Task GivenValidContractWhenAddingThenContractIsAdded() { var contract = new DtoContract { Name = "C1", Type = ContractType.Developer, Experience = 3, Salary = 5375 }; var mock = new Mock<IRepository<Contract>>(); IContractService service = new ContractService(mock.Object, new DefaultSalaryPolicy(), new DefaultSalaryCalculator()); var expected = true; var actual = await service.CreateContractAsync(contract); mock.Verify(m => m.Add(It.IsAny<Contract>()), Times.Once()); mock.Verify(m => m.SaveChangesAsync(), Times.Once()); Assert.AreEqual(expected, actual); }