public void AddExpense() { // Arrange var groupId = 1; var userId = "user"; var otherUserId = "otherUser"; var group = new Group { GroupId = groupId, Members = new List <User> { new User { Id = userId }, new User { Id = otherUserId } } }; var description = "desc"; var date = new DateTime(2015, 1, 1); var amount = 15.11; var participants = new List <string> { userId, otherUserId }; var expectedExpense = new Expense { Amount = amount, Date = date, Description = description, GroupId = groupId, UserPayingId = userId }; _groupsRepositoryMock.Setup(x => x.Get(groupId)).Returns(group); // Act _transactionService.AddExpense(userId, groupId, description, date, amount, participants); // Assert _expensesRepositoryMock.Verify(x => x.Add(expectedExpense), Times.Once()); _unitOfWorkMock.Verify(x => x.SaveChanges(), Times.Once()); }