public void Count_ValidInput_MandatoryMethodsMustHaveBeenUsed() { var fraudService = A.Fake <IFraudService>(); var orderService = A.Fake <IOrderService>(); //Arrange A.CallTo(() => fraudService.IsValidRequest(A <FraudRequest> ._)).Returns(new FraudRequestValidation(true)); A.CallTo(() => orderService.ReadOrders(A <string> ._)).Returns(new List <Order> { new Order(orderId: 1, dealId: 1, email: "*****@*****.**", street: "123 Sesame St.", city: "New York", state: "NY", zipCode: "10011", creditCard: "12345689010"), new Order(orderId: 2, dealId: 1, email: "*****@*****.**", street: "123 Sesame St.", city: "New York", state: "NY", zipCode: "10011", creditCard: "12345689011"), new Order(orderId: 3, dealId: 2, email: "*****@*****.**", street: "1234 Not Sesame St.", city: "Colorado", state: "NY", zipCode: "10012", creditCard: "12345689012"), new Order(orderId: 4, dealId: 2, email: "*****@*****.**", street: "1234 Not Sesame St.", city: "Colorado", state: "NY", zipCode: "10012", creditCard: "12345689014") }); var fraudRadar = new FraudRadar(fraudService, orderService, A.Fake <ILoggerService>()); //Act fraudRadar.Check(new FraudRequest { Directory = Path.Combine(Environment.CurrentDirectory, "Files"), FileName = "FourLines_MoreThanOneFraudulent.txt" }).ToList(); //Assert A.CallTo(() => fraudService.IsValidRequest(A <FraudRequest> ._)).MustHaveHappenedOnceExactly(); A.CallTo(() => orderService.ReadOrders(A <string> ._)).MustHaveHappenedOnceExactly(); A.CallTo(() => orderService.NormalizeEmailAddress(A <string> ._)).MustHaveHappened(Repeated.Exactly.Times(4)); A.CallTo(() => orderService.NormalizeStateAddress(A <string> ._)).MustHaveHappened(Repeated.Exactly.Times(4)); A.CallTo(() => orderService.NormalizeStreetAddress(A <string> ._)).MustHaveHappened(Repeated.Exactly.Times(4)); A.CallTo(() => fraudService.LookForCreditCardFraudByEmail(A <Order> ._, A <Order> ._)).MustHaveHappened(Repeated.AtLeast.Once); A.CallTo(() => fraudService.LookForCreditCardFraudByAddress(A <Order> ._, A <Order> ._)).MustHaveHappened(Repeated.AtLeast.Once); }
private static List <FraudResult> ExecuteTest(string filePath) { var file = new FraudFileProcessor(); file.ReadFraudFile(filePath); var fraudRadar = new FraudRadar(); return(fraudRadar.Check(file.FraudLines).ToList()); }
private static List <FraudResult> ExecuteTest(string filePath) { var normalizeHandlers = GetNormalizeService(); var checkFraudHandler = GetCheckFraudService(); var ordersReader = new OrdersReader(normalizeHandlers); var fraudRadar = new FraudRadar(checkFraudHandler); var orders = ordersReader.GetOrders(filePath); return(fraudRadar.Check(orders).ToList()); }
private static List <IFraudResult> ExecuteTest(IEnumerable <string> testData) { var mockFileIo = new Mock <IFileIo>(); var mockSettings = new Mock <ISettings>(); mockFileIo.Setup(f => f.ReadAllLines(It.IsAny <string>())).Returns(testData); mockSettings.Setup(s => s.FilePath).Returns("TestFilePath"); var fraudRadar = new FraudRadar(mockFileIo.Object, new CheckFraudService(), new OrderNormalizationService(), mockSettings.Object); return(fraudRadar.Check().ToList()); }
private static List <FraudResult> ExecuteTest(string file) { var fraudRadar = new FraudRadar(); // YOU CAN EITHER SPECIFY THE FILE NAME, OR THE FILE EXTENSION ONLY // I.E. SearchPattern = "*.txt", or SearchPattern = "FourLines_MoreThanOneFraudulent.txt" return(fraudRadar.Check(new FraudRequest { Directory = Path.Combine(Environment.CurrentDirectory, "Files"), FileName = file }).ToList()); }
private static List <FraudResult> ExecuteTest(string filePath) { IHelper helper = new Helper(); IOrderService orderService = new OrderService(helper); IFraudRadar fraudRadar = new FraudRadar(helper, orderService); //instead of passing the filePath, we will read it outside of the check method and pass //it the set of extracted lines from the file in the filepath var orders = orderService.GetOrders(filePath); return(fraudRadar.Check(orders).ToList()); }
private static List <FraudResult> ExecuteTest(string filePath) { var fraudRadar = new FraudRadar(); return(fraudRadar.Check(filePath).ToList()); }