public void successful_upload_with_additional_resources() { var record = new Record().With(r => { r.Id = new Guid("eb189a2f-ebce-4232-8dc6-1ad486cacf21"); r.Path = @"X:\path\to\upload\test"; r.Validation = Validation.Gemini; r.Gemini = Library.Example().With(m => { m.ResourceLocator = null; }); r.Publication = new PublicationInfo { OpenData = new OpenDataPublicationInfo { Assessment = new OpenDataAssessmentInfo { Completed = true }, SignOff = new OpenDataSignOffInfo { DateUtc = new DateTime(2017, 08, 02), User = TestUserInfo.TestUser }, Resources = new List <Resource> { new Resource { Path = "x:\\test\\path" } } } }; r.Footer = new Footer(); }); var store = new InMemoryDatabaseHelper().Create(); using (var db = store.OpenSession()) { db.Store(record); db.SaveChanges(); var currentTime = Clock.CurrentUtcDateTimeGetter; var testTime = new DateTime(2017, 08, 18, 12, 0, 0); Clock.CurrentUtcDateTimeGetter = () => testTime; var uploadService = new OpenDataPublishingUploadRecordService(db, new RecordValidator()); var uploadHelperMock = new Mock <IOpenDataUploadHelper>(); var uploader = new RobotUploader(db, uploadService, uploadHelperMock.Object); uploadHelperMock.Setup(x => x.GetHttpRootUrl()).Returns("http://data.jncc.gov.uk"); uploader.Upload(new List <Record> { record }); var updatedRecord = db.Load <Record>(record.Id); updatedRecord.Publication.OpenData.LastAttempt.DateUtc.Should().Be(testTime); updatedRecord.Publication.OpenData.LastAttempt.Message.Should().BeNull(); updatedRecord.Publication.OpenData.LastSuccess.DateUtc.Should().Be(testTime); updatedRecord.Publication.OpenData.LastSuccess.Message.Should().BeNull(); updatedRecord.Gemini.MetadataDate.Should().Be(testTime); updatedRecord.Gemini.ResourceLocator.Should().BeNull(); uploadHelperMock.Verify(x => x.UploadAlternativeResources(record), Times.Once); uploadHelperMock.Verify(x => x.UploadDataFile(record.Id, record.Path), Times.Never); uploadHelperMock.Verify(x => x.UploadMetadataDocument(record), Times.Once); uploadHelperMock.Verify(x => x.UploadWafIndexDocument(record), Times.Once); Clock.CurrentUtcDateTimeGetter = currentTime; } }
public void corpulent_upload_with_populated_jncc_resource_location() { var record = new Record().With(r => { r.Id = new Guid("5bc8cd79-7d7f-4c71-9653-cbe82226e174");; r.Path = @"X:\path\to\upload\test"; r.Validation = Validation.Gemini; r.Gemini = Library.Example().With(m => { m.Keywords.Add(new MetadataKeyword { Vocab = "http://vocab.jncc.gov.uk/metadata-admin", Value = "Corpulent" }); m.ResourceLocator = "http://data.jncc.gov.uk/data/filename"; }); r.Publication = new PublicationInfo { OpenData = new OpenDataPublicationInfo { Assessment = new OpenDataAssessmentInfo { Completed = true }, SignOff = new OpenDataSignOffInfo { DateUtc = new DateTime(2017, 08, 02), User = TestUserInfo.TestUser } } }; r.Footer = new Footer(); }); var store = new InMemoryDatabaseHelper().Create(); using (var db = store.OpenSession()) { db.Store(record); db.SaveChanges(); var currentTime = Clock.CurrentUtcDateTimeGetter; var testTime = new DateTime(2017, 08, 18, 12, 0, 0); Clock.CurrentUtcDateTimeGetter = () => testTime; var uploadService = new OpenDataPublishingUploadRecordService(db, new RecordValidator()); var uploadHelperMock = new Mock <IOpenDataUploadHelper>(); var uploader = new RobotUploader(db, uploadService, uploadHelperMock.Object); uploader.Upload(new List <Record> { record }); var updatedRecord = db.Load <Record>(record.Id); updatedRecord.Publication.OpenData.LastAttempt.DateUtc.Should().Be(testTime); updatedRecord.Publication.OpenData.LastAttempt.Message.Should().BeNull(); updatedRecord.Publication.OpenData.LastSuccess.DateUtc.Should().Be(testTime); updatedRecord.Publication.OpenData.LastSuccess.Message.Should().BeNull(); updatedRecord.Gemini.MetadataDate.Should().Be(testTime); updatedRecord.Gemini.ResourceLocator.Should().Be("http://data.jncc.gov.uk/data/filename"); uploadHelperMock.Verify(x => x.UploadAlternativeResources(record), Times.Never); uploadHelperMock.Verify(x => x.UploadDataFile(record.Id, record.Path), Times.Never); uploadHelperMock.Verify(x => x.UploadMetadataDocument(record), Times.Once); uploadHelperMock.Verify(x => x.UploadWafIndexDocument(record), Times.Once); Clock.CurrentUtcDateTimeGetter = currentTime; } }
public void record_not_corpulent_with_populated_resource_locator() { var recordId = new Guid("88399fba-b6f5-4e0a-b1d1-fc0668ac7515"); var record = new Record().With(r => { r.Id = recordId; r.Path = @"X:\path\to\upload\test"; r.Validation = Validation.Gemini; r.Gemini = Library.Example().With(m => { m.ResourceLocator = "http://www.someexternallinkhere.com"; }); r.Publication = new PublicationInfo { OpenData = new OpenDataPublicationInfo { Assessment = new OpenDataAssessmentInfo { Completed = true }, SignOff = new OpenDataSignOffInfo { DateUtc = new DateTime(2017, 08, 02), User = TestUserInfo.TestUser } } }; r.Footer = new Footer(); }); var store = new InMemoryDatabaseHelper().Create(); using (var db = store.OpenSession()) { db.Store(record); db.SaveChanges(); var currentTime = Clock.CurrentUtcDateTimeGetter; var testTime = new DateTime(2017, 08, 18, 12, 0, 0); Clock.CurrentUtcDateTimeGetter = () => testTime; var uploadService = new OpenDataPublishingUploadRecordService(db, new RecordValidator()); var uploadHelperMock = new Mock <IOpenDataUploadHelper>(); var uploader = new RobotUploader(db, uploadService, uploadHelperMock.Object); uploadHelperMock.Setup(x => x.GetHttpRootUrl()).Returns("http://data.jncc.gov.uk"); uploader.Upload(new List <Record> { record }); var updatedRecord = db.Load <Record>(record.Id); updatedRecord.Publication.OpenData.LastAttempt.DateUtc.Should().Be(testTime); updatedRecord.Publication.OpenData.LastAttempt.Message.Should().BeNull(); updatedRecord.Publication.OpenData.LastSuccess.DateUtc.Should().Be(testTime); updatedRecord.Publication.OpenData.LastSuccess.Message.Should().BeNull(); updatedRecord.Gemini.MetadataDate.Should().Be(testTime); updatedRecord.Gemini.ResourceLocator.Should().Be("http://www.someexternallinkhere.com"); uploadHelperMock.Verify(x => x.UploadAlternativeResources(record), Times.Never); uploadHelperMock.Verify(x => x.UploadDataFile(record.Id, record.Path), Times.Never); uploadHelperMock.Verify(x => x.UploadMetadataDocument(record), Times.Once); uploadHelperMock.Verify(x => x.UploadWafIndexDocument(record), Times.Once); Clock.CurrentUtcDateTimeGetter = currentTime; } }
public void failed_upload() { var record = new Record().With(r => { r.Id = new Guid("8ad134fa-9045-40af-a0cb-02bc3e868f5a"); r.Path = @"X:\path\to\upload\test"; r.Validation = Validation.Gemini; r.Gemini = Library.Example().With(m => { m.ResourceLocator = null; }); r.Publication = new PublicationInfo { OpenData = new OpenDataPublicationInfo { Assessment = new OpenDataAssessmentInfo { Completed = true }, SignOff = new OpenDataSignOffInfo { DateUtc = new DateTime(2017, 08, 02), User = TestUserInfo.TestUser }, Resources = new List <Resource> { new Resource { Path = "x:\\test\\path" } } } }; r.Footer = new Footer(); }); var store = new InMemoryDatabaseHelper().Create(); using (var db = store.OpenSession()) { db.Store(record); db.SaveChanges(); var currentTime = Clock.CurrentUtcDateTimeGetter; var testTime = new DateTime(2017, 08, 18, 12, 0, 0); Clock.CurrentUtcDateTimeGetter = () => testTime; var uploadService = new OpenDataPublishingUploadRecordService(db, new RecordValidator()); var uploadHelperMock = new Mock <IOpenDataUploadHelper>(); var uploader = new RobotUploader(db, uploadService, uploadHelperMock.Object); uploadHelperMock.Setup(x => x.UploadAlternativeResources(record)) .Throws(new WebException("test message")); uploader.Upload(new List <Record> { record }); var updatedRecord = db.Load <Record>(record.Id); updatedRecord.Publication.OpenData.LastAttempt.DateUtc.Should().Be(testTime); updatedRecord.Publication.OpenData.LastAttempt.Message.Should().Be("test message"); updatedRecord.Publication.OpenData.LastSuccess.Should().BeNull(); updatedRecord.Gemini.MetadataDate.Should().Be(testTime); Clock.CurrentUtcDateTimeGetter = currentTime; } }