public void ImportVisitLogSource_WithCsvText_ReturnsVisitLogEntities() { //set up repo var visitLogEntities = new List <VisitLog>(); var dataStoreRepositoryMock = new Mock <IDataStoreRepository>(); dataStoreRepositoryMock.Setup(x => x.AddEntity(It.IsAny <VisitLog>())).Callback <VisitLog>(l => visitLogEntities.Add(l)); dataStoreRepositoryMock.Setup(x => x.SaveChanges()).Returns(() => visitLogEntities.Count); var exclusionEntryRepositoryMock = new Mock <IExclusionEntryRepository>(); var visitLogService = new VisitLogService(exclusionEntryRepositoryMock.Object, dataStoreRepositoryMock.Object); //simulate csv data input var csvDataReader = new StringReader(@"date|website|visits 2016-01-06|www.bing.com|14065457 2016-01-06|www.ebay.com.au|19831166 2016-01-06|www.facebook.com|104346720 2016-01-06|mail.live.com|21536612 2016-01-06|www.wikipedia.org|13246531 2016-01-27|www.ebay.com.au|23154653 2016-01-06|au.yahoo.com|11492756 2016-01-06|www.google.com|26165099"); //parse data and save var count = visitLogService.ImportVisitLogSource(csvDataReader); Assert.AreEqual(visitLogEntities.Count, count); Assert.AreEqual(8, visitLogEntities.Count); Assert.AreEqual(new DateTime(2016, 1, 6), visitLogEntities[0].date); Assert.AreEqual("www.bing.com", visitLogEntities[0].website); Assert.AreEqual(14065457, visitLogEntities[0].visits); Assert.AreEqual(new DateTime(2016, 1, 27), visitLogEntities[5].date); Assert.AreEqual("www.ebay.com.au", visitLogEntities[5].website); Assert.AreEqual(23154653, visitLogEntities[5].visits); }
public void ImportVisitLogSource_WithCsvWrongDataFormat_ThrowsException() { //set up repo var visitLogEntities = new List <VisitLog>(); var dataStoreRepositoryMock = new Mock <IDataStoreRepository>(); dataStoreRepositoryMock.Setup(x => x.AddEntity(It.IsAny <VisitLog>())).Callback <VisitLog>(l => visitLogEntities.Add(l)); var exclusionEntryRepositoryMock = new Mock <IExclusionEntryRepository>(); var visitLogService = new VisitLogService(exclusionEntryRepositoryMock.Object, dataStoreRepositoryMock.Object); //simulate csv data input var csvDataReader = new StringReader(@"date|website|visits 2016-01-06|www.bing.com|1406aa5457"); //parse data and save var count = visitLogService.ImportVisitLogSource(csvDataReader); }