public void Can_Load_Orders_From_Json() { //preparation - create context with created options passed as argument RequestContext context = new RequestContext(CreateNewContextOptions()); //arrange var fileMock = new Mock <IFormFile>(); RequestsJson requests = new RequestsJson { Requests = new List <RequestJson> { new RequestJson { ClientId = "1", Name = "test", Price = "2.2", Quantity = "10", RequestId = "1" }, new RequestJson { ClientId = "1", Name = "test", Price = "2.2", Quantity = "100", RequestId = "1" } } }; var requestJsonTest = JsonConvert.SerializeObject(requests); //setup mock file using a memory stream var content = requestJsonTest; var fileName = "test.json"; var ms = new MemoryStream(); var writer = new StreamWriter(ms); writer.Write(content); writer.Flush(); ms.Position = 0; fileMock.Setup(_ => _.OpenReadStream()).Returns(ms); fileMock.Setup(_ => _.FileName).Returns(fileName); fileMock.Setup(_ => _.ContentType).Returns("application/json"); fileMock.Setup(_ => _.Length).Returns(ms.Length); JsonService jsonService = new JsonService(context); jsonService.LoadToDb(fileMock.Object); var requestTest = (from r in context.Requests where r.ClientId == 1 select r); var orderTest = (from o in context.Orders where o.ClientId == 1 select o); Assert.AreEqual(2, requestTest.Count()); Assert.AreEqual(1, orderTest.Count()); Assert.AreEqual("test", requestTest.First().Name); Assert.AreEqual(242, (int)orderTest.First().Amount); }
public void Can_Load_Requests_JSON() { //preparation - create context with created options passed as argument RequestContext context = new RequestContext(CreateNewContextOptions()); List <IFormFile> formFiles = new List <IFormFile>(); //arrange var fileMock = new Mock <IFormFile>(); RequestsJson requests = new RequestsJson { Requests = new List <RequestJson> { new RequestJson { ClientId = "1", Name = "test", Price = "2.2", Quantity = "10", RequestId = "1" }, new RequestJson { ClientId = "1", Name = "test", Price = "2.2", Quantity = "100", RequestId = "1" } } }; var requestJsonTest = JsonConvert.SerializeObject(requests); //setup mock file using a memory stream var content = requestJsonTest; var fileName = "test.json"; var ms = new MemoryStream(); var writer = new StreamWriter(ms); writer.Write(content); writer.Flush(); ms.Position = 0; fileMock.Setup(_ => _.OpenReadStream()).Returns(ms); fileMock.Setup(_ => _.FileName).Returns(fileName); fileMock.Setup(_ => _.ContentType).Returns("application/json"); fileMock.Setup(_ => _.Length).Returns(ms.Length); formFiles.Add(fileMock.Object); Mock <IOrderService> mockOrderService = new Mock <IOrderService>(); Mock <IEnumerable <IFileService> > mockFileServices = new Mock <IEnumerable <IFileService> >(); IEnumerable <IFileService> services = new List <IFileService> { new JsonService(context), new XmlService(context), new CsvService(context) }; //mockFileServices.Setup(m => m.FirstOrDefault(It.IsAny<Expression<Func<IFileService, bool>>>())) // .Returns(services.FirstOrDefault()); FileStrategy fileStrategy = new FileStrategy(services); Mock <IFileStrategy> mockStrategy = new Mock <IFileStrategy>(); mockStrategy.Setup(m => m.LoadToDb(fileMock.Object, FileExtension.Json)) .Returns(true); //target - create app controller, whose method will be tested FileController fileController = new FileController(fileStrategy); fileController.FilesLoad(formFiles); var requestTest = (from r in context.Requests where r.ClientId == 1 select r); var orderTest = (from o in context.Orders where o.ClientId == 1 select o); Assert.AreEqual(2, requestTest.Count()); Assert.AreEqual(1, orderTest.Count()); Assert.AreEqual("test", requestTest.First().Name); Assert.AreEqual(242, (int)orderTest.First().Amount); }
public void Cannot_Load_Not_Csv_File() { //preparation - create context with created options passed as argument RequestContext context = new RequestContext(CreateNewContextOptions()); List <IFormFile> formFiles = new List <IFormFile>(); //arrange var fileMock = new Mock <IFormFile>(); RequestsJson requests = new RequestsJson { Requests = new List <RequestJson> { new RequestJson { ClientId = "1", Name = "test", Price = "2.2", Quantity = "10", RequestId = "1" }, new RequestJson { ClientId = "1", Name = "test", Price = "2.2", Quantity = "100", RequestId = "1" } } }; var requestJsonTest = JsonConvert.SerializeObject(requests); //setup mock file using a memory stream var content = requestJsonTest; var fileName = "test.pdf"; var ms = new MemoryStream(); var writer = new StreamWriter(ms); writer.Write(content); writer.Flush(); ms.Position = 0; fileMock.Setup(_ => _.OpenReadStream()).Returns(ms); fileMock.Setup(_ => _.FileName).Returns(fileName); fileMock.Setup(_ => _.ContentType).Returns("application/pdf"); fileMock.Setup(_ => _.Length).Returns(ms.Length); formFiles.Add(fileMock.Object); Mock <IOrderService> mockOrderService = new Mock <IOrderService>(); Mock <IEnumerable <IFileService> > mockFileServices = new Mock <IEnumerable <IFileService> >(); IEnumerable <IFileService> services = new List <IFileService> { new JsonService(context), new XmlService(context), new CsvService(context) }; Mock <IFileStrategy> mockStrategy = new Mock <IFileStrategy>(); mockStrategy.Setup(m => m.LoadToDb(fileMock.Object, FileExtension.Csv)) .Returns(true); //target - create app controller, whose method will be tested FileController fileController = new FileController(mockStrategy.Object); ViewResult result = (ViewResult)fileController.FilesLoad(formFiles); var succeededFiles = result.ViewData["SuccessCount"]; var wasFailure = result.ViewData["WasFailure"]; Assert.AreEqual(0, succeededFiles); Assert.AreEqual(true, wasFailure); }