public void ValidateStock_ReturnsNegativeStockWeightState_WhenStockWeightIsNegative() { //Arrange var mockLogger = new Mock <ILogger <GlobalValidationService> >(); var mockCurrencyValidationService = new Mock <ICurrencyValidationService>(MockBehavior.Strict); var mockStockIdValidationService = new Mock <IStockIdValidationService>(MockBehavior.Strict); var stock = new Stock() { Currency = It.IsAny <string>(), OrderId = $"QF-{DateTime.Now}-{It.IsAny<int>()}", Weight = -1, Symbol = "$" }; mockCurrencyValidationService.Setup(x => x.ValidateCurrency(It.IsAny <string>())) .Returns(ValidationState.Success); mockStockIdValidationService.Setup(x => x.ValidateOrderId(It.IsAny <string>(), It.IsAny <int>())) .Returns(ValidationState.InvalidOrderId); var sut = new GlobalValidationService(mockLogger.Object, mockCurrencyValidationService.Object, mockStockIdValidationService.Object); //Act var result = sut.ValidateStock(stock); //Assert Assert.Equal(ValidationState.NegativeStockWeight, result); }
public void ValidateStock_ReturnsInvalidCurrencySymbolState_WhenCurrencySymbolIsNotSupported() { //Arrange var mockLogger = new Mock <ILogger <GlobalValidationService> >(); var mockCurrencyValidationService = new Mock <ICurrencyValidationService>(MockBehavior.Strict); var mockStockIdValidationService = new Mock <IStockIdValidationService>(MockBehavior.Strict); var stock = new Stock() { Currency = It.IsAny <string>(), OrderId = $"QF-{DateTime.Now}-{It.IsAny<int>()}", Weight = It.Is <int>(x => x > 0), NotionalAmount = -1, Symbol = $"{Guid.NewGuid().ToString()}" }; mockCurrencyValidationService.Setup(x => x.ValidateCurrency(It.IsAny <string>())) .Returns(ValidationState.Success); mockStockIdValidationService.Setup(x => x.ValidateOrderId(It.IsAny <string>(), It.IsAny <int>())) .Returns(ValidationState.Success); var sut = new GlobalValidationService(mockLogger.Object, mockCurrencyValidationService.Object, mockStockIdValidationService.Object); //Act var result = sut.ValidateStock(stock); //Assert Assert.Equal(ValidationState.InvalidCurrencySymbol, result); }