public TypeCheckerTest() { var currentDirectory = Directory.GetParent(Directory.GetCurrentDirectory()); var config = new Dictionary <string, object> { { ConfigurationManager.MetadataDirKey, Path.Combine(currentDirectory.Parent?.Parent?.ToString(), "Resources") } }; var configurationProvider = new MockConfigurationProvider(config); var environment = new MockEnvironment(); var fileMetadataAccessor = new FileMetadataAccessor(); fileMetadataAccessor.SetMetadataPath((string)config[ConfigurationManager.MetadataDirKey]); var cache = new MockCache(); var configurationManager = new ConfigurationManager(configurationProvider, environment, cache); _metadataProvider = configurationManager.NewMetadataProvider(); }
public void CreateConfiguration(string source, string destination) { IConfigurationProvider configurationProvider = new MockConfigurationProvider(source, destination); ConfigurationOptions configurationOptions = configurationProvider.GetOptions(); configurationOptions.Should().NotBeNull("because we provided to the Mock proper paths"); configurationOptions.SourceDirectory.Should().NotBeNull("because the source directory path was provided"); configurationOptions.SourceDirectory.Exists.Should().BeTrue("because the source directory exists"); }
public void ReceiveServiceAPIDownTest() { var callingAet = "ProstateRTMl"; var mockReceiverConfigurationProvider = new MockConfigurationProvider <ReceiveServiceConfig>(); var client = GetMockInnerEyeSegmentationClient(); var gatewayReceiveConfig = GetTestGatewayReceiveServiceConfig(140); mockReceiverConfigurationProvider.ConfigurationQueue.Clear(); mockReceiverConfigurationProvider.ConfigurationQueue.Enqueue(gatewayReceiveConfig); using (var receiveService = CreateReceiveService(mockReceiverConfigurationProvider.GetConfiguration)) using (var uploadQueue = receiveService.UploadQueue) { receiveService.Start(); // This should cause an exception to be raised in ReceiveService.GetAcceptedSopClassesAndTransferSyntaxes mockReceiverConfigurationProvider.TestException = new Exception("A general exception."); uploadQueue.Clear(); DcmtkHelpers.SendFileUsingDCMTK( @"Images\1ValidSmall\1.dcm", gatewayReceiveConfig.GatewayDicomEndPoint.Port, ScuProfile.LEExplicitCT, TestContext, applicationEntityTitle: callingAet, calledAETitle: gatewayReceiveConfig.GatewayDicomEndPoint.Title); var receiveQueueItem = TransactionalDequeue <UploadQueueItem>(uploadQueue, 10000); Assert.IsNotNull(receiveQueueItem); Assert.AreEqual(callingAet, receiveQueueItem.CallingApplicationEntityTitle); Assert.AreEqual(gatewayReceiveConfig.GatewayDicomEndPoint.Title, receiveQueueItem.CalledApplicationEntityTitle); Assert.IsFalse(string.IsNullOrEmpty(receiveQueueItem.AssociationFolderPath)); var saveDirectoryInfo = new DirectoryInfo(receiveQueueItem.AssociationFolderPath); Assert.IsTrue(saveDirectoryInfo.Exists); var files = saveDirectoryInfo.GetFiles(); // Check we received one file over this association Assert.AreEqual(1, files.Length); // Attempt to get another item from the queue Assert.ThrowsException <MessageQueueReadException>(() => TransactionalDequeue <UploadQueueItem>(uploadQueue)); } }
protected override void OnArrange() { TestConfig = Test <Configuration> .Item; TestConfig.Mappings = new List <BoardMapping> { TestConfig.Mappings[0] }; MockConfigurationProvider.Setup(x => x.GetConfiguration()).Returns(TestConfig); MockLeanKitClientFactory.Setup(x => x.Create(It.IsAny <LeanKitAccountAuth>())).Returns(LeanKitApi); var testSettings = Test <AppSettings> .Item; MockLocalStorage.Setup(x => x.Load()).Returns(testSettings); TestItem = new TestTarget(SubscriptionManager, ConfigurationProvider, LocalStorage, LeanKitClientFactory); TestCard = Test <CloneableCard> .Item; TestConfig.Mappings[0].Identity.LeanKit = BoardId; }
public static ConfigurationManager BuildAs(bool isProd) { var currentDirectory = Directory.GetParent(Directory.GetCurrentDirectory()); var config = new Dictionary <string, object> { { ConfigurationManager.MetadataDirKey, Path.Combine(currentDirectory.Parent?.Parent?.ToString(), "Resources", "provider_metadatas") } }; var configurationProvider = new MockConfigurationProvider(config); var environment = new MockEnvironment(isProd); var fileMetadataAccessor = new FileMetadataAccessor(); fileMetadataAccessor.SetMetadataPath((string)config[ConfigurationManager.MetadataDirKey]); var cache = new MockProdCache(fileMetadataAccessor); return(new ConfigurationManager(configurationProvider, environment, cache)); }
private static NSerializer GetSerializerAs(FieldFormatterType type, FieldAccessType accessType, DateFormatType dateFormatType, bool withNulls) { var currentDirectory = Directory.GetParent(Directory.GetCurrentDirectory()); var config = new Dictionary <string, object> { { ConfigurationManager.MetadataDirKey, Path.Combine(currentDirectory.Parent?.Parent?.ToString(), "Resources") }, { ConfigurationManager.IncludeNullValuesKey, withNulls }, { ConfigurationManager.FieldFormattingMethodKey, type.ToString() }, { ConfigurationManager.FieldAccessTypeKey, accessType.ToString() }, { ConfigurationManager.DateFormatKey, dateFormatType.ToString() } }; var configurationProvider = new MockConfigurationProvider(config); var environment = new MockEnvironment(); var cache = new MockCache(); return(NSerializerBuilder.Build() .WithCache(cache) .WithConfigurationProvider(configurationProvider) .WithEnvironment(environment) .Get()); }
protected override void OnArrange() { MockConfigurationProvider.Setup(x => x.GetConfiguration()).Returns(TestConfig); MockLeanKitClientFactory.Setup(x => x.Create(It.IsAny <ILeanKitAccountAuth>())).Returns(LeanKitApi); }
protected override void OnArrange() { MockConfigurationProvider.Setup(x => x.GetConfiguration()).Throws <ConfigurationErrorsException>(); }
protected override void OnArrange() { MockConfigurationProvider.Setup(x => x.GetConfiguration()).Returns(TestConfig); MockLeanKitClientFactory.Setup(x => x.Create(It.IsAny <LeanKitAccountAuth>())).Returns(LeanKitApi); MockRestClient.Setup(x => x.Execute(It.IsAny <IRestRequest>())).Returns((IRestResponse)null); }
public void ReceiveServiceRestartTest() { var callingAet = "ProstateRTMl"; var client = GetMockInnerEyeSegmentationClient(); var mockConfigurationServiceConfigProvider = new MockConfigurationProvider <ConfigurationServiceConfig>(); var configurationServiceConfig1 = new ConfigurationServiceConfig( configurationRefreshDelaySeconds: 1); var configurationServiceConfig2 = new ConfigurationServiceConfig( configurationServiceConfig1.ConfigCreationDateTime.AddSeconds(5), configurationServiceConfig1.ApplyConfigDateTime.AddSeconds(10)); mockConfigurationServiceConfigProvider.ConfigurationQueue.Clear(); mockConfigurationServiceConfigProvider.ConfigurationQueue.Enqueue(configurationServiceConfig1); mockConfigurationServiceConfigProvider.ConfigurationQueue.Enqueue(configurationServiceConfig2); var mockReceiverConfigurationProvider2 = new MockConfigurationProvider <ReceiveServiceConfig>(); var testReceiveServiceConfig1 = GetTestGatewayReceiveServiceConfig(110); var testReceiveServiceConfig2 = GetTestGatewayReceiveServiceConfig(111); mockReceiverConfigurationProvider2.ConfigurationQueue.Clear(); mockReceiverConfigurationProvider2.ConfigurationQueue.Enqueue(testReceiveServiceConfig1); mockReceiverConfigurationProvider2.ConfigurationQueue.Enqueue(testReceiveServiceConfig2); using (var receiveService = CreateReceiveService(mockReceiverConfigurationProvider2.GetConfiguration)) using (var uploadQueue = receiveService.UploadQueue) using (var configurationService = CreateConfigurationService( client, mockConfigurationServiceConfigProvider.GetConfiguration, receiveService)) { // Start the service configurationService.Start(); uploadQueue.Clear(); // Clear the message queue SpinWait.SpinUntil(() => receiveService.StartCount == 2); // Send on the new config var result = DcmtkHelpers.SendFileUsingDCMTK( @"Images\1ValidSmall\1.dcm", testReceiveServiceConfig1.GatewayDicomEndPoint.Port, ScuProfile.LEExplicitCT, TestContext, applicationEntityTitle: callingAet, calledAETitle: testReceiveServiceConfig1.GatewayDicomEndPoint.Title); // Check this did send on the old config Assert.IsFalse(string.IsNullOrWhiteSpace(result)); // Send on the new config result = DcmtkHelpers.SendFileUsingDCMTK( @"Images\1ValidSmall\1.dcm", testReceiveServiceConfig2.GatewayDicomEndPoint.Port, ScuProfile.LEExplicitCT, TestContext, applicationEntityTitle: callingAet, calledAETitle: testReceiveServiceConfig2.GatewayDicomEndPoint.Title); // Check this did send on the new config Assert.IsTrue(string.IsNullOrWhiteSpace(result)); var receiveQueueItem = TransactionalDequeue <UploadQueueItem>(uploadQueue); Assert.IsNotNull(receiveQueueItem); Assert.AreEqual(callingAet, receiveQueueItem.CallingApplicationEntityTitle); Assert.AreEqual(testReceiveServiceConfig2.GatewayDicomEndPoint.Title, receiveQueueItem.CalledApplicationEntityTitle); Assert.IsFalse(string.IsNullOrEmpty(receiveQueueItem.AssociationFolderPath)); var saveDirectoryInfo = new DirectoryInfo(receiveQueueItem.AssociationFolderPath); Assert.IsTrue(saveDirectoryInfo.Exists); var files = saveDirectoryInfo.GetFiles(); // Check we received one file over this association Assert.AreEqual(1, files.Length); // Attempt to get another item from the queue Assert.ThrowsException <MessageQueueReadException>(() => TransactionalDequeue <UploadQueueItem>(uploadQueue)); } }
public async Task ProcessorServiceRestartTest() { var tempFolder = CreateTemporaryDirectory(); foreach (var file in new DirectoryInfo(@"Images\1ValidSmall\").GetFiles()) { file.CopyTo(Path.Combine(tempFolder.FullName, file.Name)); } var client = GetMockInnerEyeSegmentationClient(); var mockConfigurationServiceConfigProvider = new MockConfigurationProvider <ConfigurationServiceConfig>(); var configurationServiceConfig1 = new ConfigurationServiceConfig( configurationRefreshDelaySeconds: 1); var configurationServiceConfig2 = new ConfigurationServiceConfig( configurationServiceConfig1.ConfigCreationDateTime.AddSeconds(5), configurationServiceConfig1.ApplyConfigDateTime.AddSeconds(10)); mockConfigurationServiceConfigProvider.ConfigurationQueue.Enqueue(configurationServiceConfig1); mockConfigurationServiceConfigProvider.ConfigurationQueue.Enqueue(configurationServiceConfig2); var resultDirectory = CreateTemporaryDirectory(); using (var dicomDataReceiver = new ListenerDataReceiver(new ListenerDicomSaver(resultDirectory.FullName))) { var eventCount = 0; var folderPath = string.Empty; dicomDataReceiver.DataReceived += (sender, e) => { folderPath = e.FolderPath; Interlocked.Increment(ref eventCount); }; var testAETConfigModel = GetTestAETConfigModel(); StartDicomDataReceiver(dicomDataReceiver, testAETConfigModel.AETConfig.Destination.Port); using (var pushService = CreatePushService()) using (var uploadService = CreateUploadService(client)) using (var uploadQueue = uploadService.UploadQueue) using (var downloadService = CreateDownloadService(client)) using (var configurationService = CreateConfigurationService( client, mockConfigurationServiceConfigProvider.GetConfiguration, downloadService, uploadService, pushService)) { // Start the service configurationService.Start(); uploadQueue.Clear(); // Clear the message queue SpinWait.SpinUntil(() => pushService.StartCount == 2); SpinWait.SpinUntil(() => uploadService.StartCount == 2); SpinWait.SpinUntil(() => downloadService.StartCount == 2); TransactionalEnqueue( uploadQueue, new UploadQueueItem( calledApplicationEntityTitle: testAETConfigModel.CalledAET, callingApplicationEntityTitle: testAETConfigModel.CallingAET, associationFolderPath: tempFolder.FullName, rootDicomFolderPath: tempFolder.FullName, associationGuid: Guid.NewGuid(), associationDateTime: DateTime.UtcNow)); SpinWait.SpinUntil(() => eventCount >= 3); Assert.IsFalse(string.IsNullOrWhiteSpace(folderPath)); var dicomFile = await DicomFile.OpenAsync(new DirectoryInfo(folderPath).GetFiles()[0].FullName); Assert.IsNotNull(dicomFile); dicomFile = null; TryDeleteDirectory(folderPath); } } }