public async Task SubtractionService_Subtract_Should_Pass() { var historyServiceMock = new Mock <IHistoryClient>(); var calculatorRepositoryMock = new Mock <ICalculatorRepository>(); var calculatorSetMock = new Mock <DbSet <CalculatorRecord> >(); var auditRepositoryMock = new Mock <IAuditRepository <SubtractionAuditRecord> >(); var auditSetMock = new Mock <DbSet <SubtractionAuditRecord> >(); calculatorRepositoryMock.Setup(c => c.Calculators).Returns(calculatorSetMock.Object); auditRepositoryMock.Setup(c => c.Audits).Returns(auditSetMock.Object); var value = 5M; var operation = Operations.Subtraction; var expectedResult = -5M; historyServiceMock .Setup(c => c.UpdateHistory(It.IsAny <Guid>(), operation, -value, CancellationToken.None)) .ReturnsAsync(new HistoryDto() { CalculatorId = Guid.NewGuid(), NewValue = expectedResult, OldValue = null, Operation = Operations.Subtraction }); var service = new SubtractionService(calculatorRepositoryMock.Object, auditRepositoryMock.Object, historyServiceMock.Object); var result = await service.Subtract(null, value, CancellationToken.None); Assert.AreEqual(expectedResult, result.Result); Assert.AreNotEqual(result.GlobalId, default(Guid)); calculatorRepositoryMock.Verify(r => r.Add(It.IsAny <CalculatorRecord>(), CancellationToken.None), Times.Once); auditRepositoryMock.Verify(r => r.AddAudit(It.IsAny <SubtractionAuditRecord>(), CancellationToken.None), Times.Once); historyServiceMock.Verify(c => c.UpdateHistory(It.IsAny <Guid>(), operation, expectedResult, CancellationToken.None), Times.Once); }
public void CanSubtract_TwoFloats_2_1() { // Arrange SubtractionService subject = new SubtractionService(); float expected = 1f; // Act float actual = subject.Evaluate(2, 1); // Assert Assert.Equal(expected, actual); }
public async Task SubtractionService_Subtract_Existing_Id_Should_Pass() { var historyServiceMock = new Mock <IHistoryClient>(); var calculatorRepositoryMock = new Mock <ICalculatorRepository>(); var calculatorSetMock = new Mock <DbSet <CalculatorRecord> >(); var auditRepositoryMock = new Mock <IAuditRepository <SubtractionAuditRecord> >(); var auditSetMock = new Mock <DbSet <SubtractionAuditRecord> >(); calculatorRepositoryMock.Setup(c => c.Calculators).Returns(calculatorSetMock.Object); auditRepositoryMock.Setup(c => c.Audits).Returns(auditSetMock.Object); var id = Guid.NewGuid(); var value = 10M; var operand = 5M; var operation = Operations.Subtraction; var expectedOutput = value - operand; calculatorRepositoryMock .Setup(c => c.Find(It.IsAny <Guid>(), CancellationToken.None)) .ReturnsAsync(new CalculatorRecord { Id = id, Value = value }); historyServiceMock .Setup(c => c.UpdateHistory(id, operation, expectedOutput, CancellationToken.None)) .ReturnsAsync(new HistoryDto() { CalculatorId = id, NewValue = expectedOutput, OldValue = value, Operation = Operations.Subtraction }); var service = new SubtractionService(calculatorRepositoryMock.Object, auditRepositoryMock.Object, historyServiceMock.Object); var result = await service.Subtract(id, operand, CancellationToken.None); Assert.AreEqual(expectedOutput, result.Result); Assert.AreEqual(id, result.GlobalId); calculatorRepositoryMock.Verify(r => r.Update(It.IsAny <CalculatorRecord>(), CancellationToken.None), Times.Once); auditRepositoryMock.Verify(r => r.AddAudit(It.IsAny <SubtractionAuditRecord>(), CancellationToken.None), Times.Once); historyServiceMock.Verify(c => c.UpdateHistory(It.IsAny <Guid>(), operation, expectedOutput, CancellationToken.None), Times.Once); }