If_update_is_requested_with_primary_data_and_elastic_record_with_identical_primaryLink_record_is_indexed_with_existing_data() { // Arrange var archvieRecordId = "3457"; var mutationId = 6626; var ar = new ArchiveRecord { ArchiveRecordId = archvieRecordId, Metadata = new ArchiveRecordMetadata { PrimaryDataLink = "Aip@DossierId" }, Security = new ArchiveRecordSecurity { MetadataAccessToken = new List <string> { "Ö1" } } }; harvestManager.Setup(e => e.BuildArchiveRecord(archvieRecordId)).Returns(ar); var findResult = new FindArchiveRecordResponse { ArchiveRecordId = archvieRecordId, ElasticArchiveRecord = new ElasticArchiveRecord { ArchiveRecordId = archvieRecordId, PrimaryDataLink = "Aip@DossierId", PrimaryData = new List <ElasticArchiveRecordPackage> { new ElasticArchiveRecordPackage { FileCount = 5, PackageId = "controlPackageId" } } } }; findArchiveRecordClient.Setup(e => e.Request(It.IsAny <FindArchiveRecordRequest>(), CancellationToken.None)) .Returns(Task.FromResult(findResult)); // Act await InputQueueSendEndpoint.Send <ISyncArchiveRecord>(new { ArchiveRecordId = archvieRecordId, MutationId = mutationId, Action = "UpDaTe" }); // Wait for the results await syncArchiveRecordTask; var context = await updateArchiveRecordTask; // Assert context.Message.ArchiveRecord.ArchiveRecordId.Should().Be(archvieRecordId); context.Message.ArchiveRecord.ElasticPrimaryData[0].FileCount.Should().Be(5); context.Message.ArchiveRecord.ElasticPrimaryData[0].PackageId.Should().Be("controlPackageId"); context.Message.MutationId.Should().Be(mutationId); }
public async Task If_update_is_requested_with_removed_primary_data_package_then_cache_is_deleted() { // Arrange var archvieRecordId = "3457"; var mutationId = 6626; var ar = new ArchiveRecord { ArchiveRecordId = archvieRecordId, Metadata = new ArchiveRecordMetadata { PrimaryDataLink = null }, Security = new ArchiveRecordSecurity { MetadataAccessToken = new List <string> { "Ö1" } } }; harvestManager.Setup(e => e.BuildArchiveRecord(archvieRecordId)).Returns(ar); var findResult = new FindArchiveRecordResponse { ArchiveRecordId = archvieRecordId, ElasticArchiveRecord = new ElasticArchiveRecord { ArchiveRecordId = archvieRecordId, PrimaryDataLink = "AIP@DossierId" } }; findArchiveRecordClient.Setup(e => e.Request(It.IsAny <FindArchiveRecordRequest>(), CancellationToken.None)) .Returns(Task.FromResult(findResult)); // Act await InputQueueSendEndpoint.Send <ISyncArchiveRecord>(new { ArchiveRecordId = archvieRecordId, MutationId = mutationId, Action = "UpDaTe" }); // Wait for the results await syncArchiveRecordTask; var context = await updateArchiveRecordTask; var context2 = await removeFileFromCacheTask; // Assert context.Message.ArchiveRecord.ArchiveRecordId.Should().Be(archvieRecordId); context.Message.MutationId.Should().Be(mutationId); // Verify the delete cache method was called context2.Message.ArchiveRecordId.Should().Be(archvieRecordId); }
public async Task If_update_is_requested_with_removed_primary_data_package_and_no_existing_elastic_record_normal_update_is_made() { // Arrange var archvieRecordId = "34527"; var mutationId = 66267; var ar = new ArchiveRecord { ArchiveRecordId = archvieRecordId, Metadata = new ArchiveRecordMetadata { PrimaryDataLink = null }, Security = new ArchiveRecordSecurity { MetadataAccessToken = new List <string> { "Ö1" } } }; harvestManager.Setup(e => e.BuildArchiveRecord(archvieRecordId)).Returns(ar); var findResult = new FindArchiveRecordResponse { ArchiveRecordId = archvieRecordId, ElasticArchiveRecord = null }; findArchiveRecordClient.Setup(e => e.Request(It.IsAny <FindArchiveRecordRequest>(), CancellationToken.None)) .Returns(Task.FromResult(findResult)); // Act await InputQueueSendEndpoint.Send <ISyncArchiveRecord>(new { ArchiveRecordId = archvieRecordId, MutationId = mutationId, Action = "UpDaTe" }); // Wait for the results await syncArchiveRecordTask; var context = await updateArchiveRecordTask; // Assert context.Message.ArchiveRecord.ArchiveRecordId.Should().Be(archvieRecordId); context.Message.MutationId.Should().Be(mutationId); }
public async Task If_update_is_requested_with_no_primary_data_index_is_updated() { // Arrange var archvieRecordId = "345"; var mutationId = 666; var ar = new ArchiveRecord { ArchiveRecordId = archvieRecordId, Metadata = new ArchiveRecordMetadata { PrimaryDataLink = null }, Security = new ArchiveRecordSecurity { MetadataAccessToken = new List <string> { "Ö1" } } }; harvestManager.Setup(e => e.BuildArchiveRecord(archvieRecordId)).Returns(ar); var findResult = new FindArchiveRecordResponse { ArchiveRecordId = archvieRecordId, ElasticArchiveRecord = new ElasticArchiveRecord { ArchiveRecordId = archvieRecordId, PrimaryDataLink = null } }; var response = new Mock <Response <FindArchiveRecordResponse> >(); response.Setup(r => r.Message).Returns(findResult); findArchiveRecordClient.Setup(e => e.GetResponse <FindArchiveRecordResponse>(It.IsAny <FindArchiveRecordRequest>(), It.IsAny <CancellationToken>(), It.IsAny <RequestTimeout>())) .Returns(Task.FromResult(response.Object)); var harness = new InMemoryTestHarness(); var consumer = harness.Consumer(() => new SyncArchiveRecordConsumer(harvestManager.Object, findArchiveRecordClient.Object, cachedHarvesterSetting.Object)); await harness.Start(); try { // Act await harness.InputQueueSendEndpoint.Send <ISyncArchiveRecord>(new { ArchiveRecordId = archvieRecordId, MutationId = mutationId, Action = "UpDaTe" }); // did the endpoint consume the message Assert.That(await harness.Consumed.Any <ISyncArchiveRecord>()); // did the actual consumer consume the message Assert.That(await consumer.Consumed.Any <ISyncArchiveRecord>()); var message = harness.Consumed.Select <ISyncArchiveRecord>().FirstOrDefault(); // was the update message sent Assert.That(await harness.Sent.Any <IUpdateArchiveRecord>()); // Assert Assert.That(message != null); message.Context.Message.ArchiveRecordId.Should().Be(archvieRecordId); message.Context.Message.MutationId.Should().Be(mutationId); } finally { await harness.Stop(); } }
If_update_is_requested_with_primary_data_and_elastic_record_with_identical_primaryLink_record_but_reindex_is_enforced_package_metadata_is_appended() { // Arrange var archvieRecordId = "3457"; var mutationId = 6626; var ar = new ArchiveRecord { ArchiveRecordId = archvieRecordId, Metadata = new ArchiveRecordMetadata { PrimaryDataLink = "Aip@DossierId" }, Security = new ArchiveRecordSecurity { MetadataAccessToken = new List <string> { "Ö1" } } }; harvestManager.Setup(e => e.BuildArchiveRecord(archvieRecordId)).Returns(ar); cachedHarvesterSetting.Setup(s => s.EnableFullResync()).Returns(true); var findResult = new FindArchiveRecordResponse { ArchiveRecordId = archvieRecordId, ElasticArchiveRecord = new ElasticArchiveRecord { ArchiveRecordId = archvieRecordId, PrimaryDataLink = "Aip@DossierId", PrimaryData = new List <ElasticArchiveRecordPackage> { new ElasticArchiveRecordPackage { FileCount = 5, PackageId = "controlPackageId" } } } }; var response = new Mock <Response <FindArchiveRecordResponse> >(); response.Setup(r => r.Message).Returns(findResult); findArchiveRecordClient.Setup(e => e.GetResponse <FindArchiveRecordResponse>(It.IsAny <FindArchiveRecordRequest>(), It.IsAny <CancellationToken>(), It.IsAny <RequestTimeout>())) .Returns(Task.FromResult(response.Object)); var harness = new InMemoryTestHarness(); var consumer = harness.Consumer(() => new SyncArchiveRecordConsumer(harvestManager.Object, findArchiveRecordClient.Object, cachedHarvesterSetting.Object)); await harness.Start(); try { // Act await harness.InputQueueSendEndpoint.Send <ISyncArchiveRecord>(new { ArchiveRecordId = archvieRecordId, MutationId = mutationId, Action = "UpDaTe" }); // did the endpoint consume the message Assert.That(await harness.Consumed.Any <ISyncArchiveRecord>()); // did the actual consumer consume the message Assert.That(await consumer.Consumed.Any <ISyncArchiveRecord>()); // was the update ArchiveRecord message sent Assert.That(await harness.Sent.Any <IArchiveRecordAppendPackageMetadata>()); var message = harness.Sent.Select <IArchiveRecordAppendPackageMetadata>().FirstOrDefault(); // Assert Assert.That(message != null); message.Context.Message.ArchiveRecord.ArchiveRecordId.Should().Be(archvieRecordId); message.Context.Message.MutationId.Should().Be(mutationId); } finally { await harness.Stop(); } }