示例#1
0
        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 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");
        }
示例#4
0
        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));
        }
示例#7
0
        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());
        }
示例#8
0
 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);
 }
示例#11
0
        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));
                    }
        }
示例#12
0
        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);
                                }
            }
        }