private void SetupLocalAe(params string[] names)
        {
            var claraCrdList = new ClaraApplicationEntityCustomResourceList();

            claraCrdList.Items = new List <ClaraApplicationEntityCustomResource>();
            foreach (var name in names)
            {
                var aet = new ClaraApplicationEntityCustomResource
                {
                    Spec = new ClaraApplicationEntity
                    {
                        AeTitle           = name,
                        Name              = name,
                        ProcessorSettings = new Dictionary <string, string>()
                        {
                            { "pipeline-test", "123" }
                        }
                    },
                    Metadata = new V1ObjectMeta {
                        Name = name
                    }
                };
                claraCrdList.Items.Add(aet);
            }

            _dicomAdapterFixture.KubernetesClient
            .Setup(p => p.ListNamespacedCustomObjectWithHttpMessagesAsync(It.Is <CustomResourceDefinition>(p => p.Kind == "ClaraAeTitle")))
            .Returns(Task.FromResult(new HttpOperationResponse <object>
            {
                Body     = new object(),
                Response = new HttpResponseMessage {
                    Content = new StringContent(JsonConvert.SerializeObject(claraCrdList))
                }
            }));
        }
Example #2
0
        public async void Get_ShallReturnAvailableCrds()
        {
            var claraAeTitles = new ClaraApplicationEntityCustomResourceList
            {
                Items = new List <ClaraApplicationEntityCustomResource>
                {
                    // use default values
                    new ClaraApplicationEntityCustomResource
                    {
                        Spec = new ClaraApplicationEntity {
                            Name = "ClaraSCP"
                        },
                        Status = new AeTitleStatus {
                            Enabled = true
                        },
                        Metadata = new V1ObjectMeta {
                            ResourceVersion = "1", Name = "ClaraSCP"
                        }
                    },
                    // use custom values
                    new ClaraApplicationEntityCustomResource
                    {
                        Spec = new ClaraApplicationEntity {
                            Name    = "localAet",
                            AeTitle = "MySCP",
                            OverwriteSameInstance = true,
                            IgnoredSopClasses     = new List <string>()
                            {
                                "1.2.3.4.5.6"
                            },
                            Processor = "test"
                        },
                        Status = new AeTitleStatus {
                            Enabled = true
                        },
                        Metadata = new V1ObjectMeta {
                            ResourceVersion = "1", Name = "localAet"
                        }
                    }
                }
            };

            _kubernetesClient.Setup(p => p.ListNamespacedCustomObjectWithHttpMessagesAsync(CustomResourceDefinition.ClaraAeTitleCrd))
            .Returns(Task.FromResult(new HttpOperationResponse <object>
            {
                Body     = new object(),
                Response = new HttpResponseMessage {
                    Content = new StringContent(JsonConvert.SerializeObject(claraAeTitles))
                }
            }));

            var result = await _controller.Get();

            _kubernetesClient.Verify(p => p.ListNamespacedCustomObjectWithHttpMessagesAsync(CustomResourceDefinition.ClaraAeTitleCrd), Times.Once());

            var data = JsonConvert.DeserializeObject <ClaraApplicationEntityCustomResourceList>((result.Result as ContentResult).Content);

            Assert.Equal(2, data.Items.Count);

            foreach (var item in claraAeTitles.Items)
            {
                var actualItem = data.Items.FirstOrDefault(p => p.Spec.Name.Equals(item.Spec.Name));
                Assert.NotNull(actualItem);
                Assert.Equal(item.Spec.AeTitle, actualItem.Spec.AeTitle);
                Assert.Equal(item.Spec.OverwriteSameInstance, actualItem.Spec.OverwriteSameInstance);
                Assert.Equal(item.Spec.IgnoredSopClasses, actualItem.Spec.IgnoredSopClasses);
                Assert.Equal(item.Spec.Processor, actualItem.Spec.Processor);
            }
        }