public void Can_Load_Xml_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>(); RequestsXml requests = new RequestsXml { Requests = new List <RequestXml> { new RequestXml { ClientId = "1", Name = "test", Price = "2.2", Quantity = "10", RequestId = "1" }, new RequestXml { ClientId = "1", Name = "test", Price = "2.2", Quantity = "100", RequestId = "1" } } }; XmlSerializer serializer = new XmlSerializer(typeof(RequestsXml)); var requestXmlTest = ""; using (var sww = new StringWriter()) using (XmlWriter xmlWriter = XmlWriter.Create(sww)) { serializer.Serialize(xmlWriter, requests); requestXmlTest = sww.ToString(); // XML file } //setup mock file using a memory stream var content = requestXmlTest; var fileName = "test.xml"; 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("text/xml"); 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.Xml)) .Returns(true); //target - create app controller, whose method will be tested FileController fileController = new FileController(mockStrategy.Object); ViewResult result = (ViewResult)fileController.FilesLoad(formFiles); int succeededFiles = (int)result.ViewData["SuccessCount"]; Assert.AreEqual(1, succeededFiles); }
public void Can_Load_Requests_XML() { //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>(); RequestsXml requests = new RequestsXml { Requests = new List <RequestXml> { new RequestXml { ClientId = "1", Name = "test", Price = "2.2", Quantity = "10", RequestId = "1" }, new RequestXml { ClientId = "1", Name = "test", Price = "2.2", Quantity = "100", RequestId = "1" } } }; XmlSerializer serializer = new XmlSerializer(typeof(RequestsXml)); var requestXmlTest = ""; using (var sww = new StringWriter()) using (XmlWriter xmlWriter = XmlWriter.Create(sww)) { serializer.Serialize(xmlWriter, requests); requestXmlTest = sww.ToString(); // Your XML } //setup mock file using a memory stream var content = requestXmlTest; var fileName = "test.xml"; 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("text/xml"); 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>(); //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 Can_Load_Orders_From_Xml() { //preparation - create context with created options passed as argument RequestContext context = new RequestContext(CreateNewContextOptions()); //arrange var fileMock = new Mock <IFormFile>(); RequestsXml requests = new RequestsXml { Requests = new List <RequestXml> { new RequestXml { ClientId = "1", Name = "test", Price = "2.2", Quantity = "10", RequestId = "1" }, new RequestXml { ClientId = "1", Name = "test", Price = "2.2", Quantity = "100", RequestId = "1" } } }; XmlSerializer serializer = new XmlSerializer(typeof(RequestsXml)); var requestXmlTest = ""; using (var sww = new StringWriter()) using (XmlWriter xmlWriter = XmlWriter.Create(sww)) { serializer.Serialize(xmlWriter, requests); requestXmlTest = sww.ToString(); // Your XML } //setup mock file using a memory stream var content = requestXmlTest; var fileName = "test.xml"; 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("text/xml"); fileMock.Setup(_ => _.Length).Returns(ms.Length); XmlService xmlService = new XmlService(context); xmlService.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); }