コード例 #1
0
        public void Constructor_ResponseCallbackIsCalled()
        {
            // Arrange
            var mockProvider = new MockProvider();
            var fellowOakMockProvider = new FellowOakMockProvider();
            var whereCollection = mockProvider.GetWhereCollection();
            var infoBuilder = mockProvider.GetDicomInfoBuilderFake();
            infoBuilder.BuildInfo<TestInfo>(Arg.Any<object>()).Returns(new TestInfo
            {
                PatientID = 666,
                PatientName = "patientName"
            });

            var response = new DicomCFindResponse(new DicomDataset())
            {
                Dataset = new DicomDataset()
            };
            TestInfo responseItem = null;
            var responseAction = new Action<TestInfo>(item =>
            {
                responseItem = item;
            });

            // Act
            var dicomFindRequest = new FellowOakDicomFindRequest<TestInfo>(mockProvider.GetDicomMappingFake(), fellowOakMockProvider.GetDicomTagAdapterFake(), infoBuilder, mockProvider.GetGeneralizedInfoProviderFake(), fellowOakMockProvider.GetDicomSopClassUidProviderFake(), responseAction, whereCollection.GetDicomWhereCollections().First());
            var innerRequest = (DicomCFindRequest)dicomFindRequest.InnerRequest;
            
            innerRequest.OnResponseReceived(null, response);

            // Assert
            Assert.That(responseItem.PatientID, Is.EqualTo(666));
            Assert.That(responseItem.PatientName, Is.EqualTo("patientName"));
        }
コード例 #2
0
        public void Indexer_UndefinedDicomTag_ThrowsException()
        {
            // Arrange
            MockProvider mockProvider = new MockProvider();
            var whereCollection = mockProvider.GetWhereCollection();

            // Act + Assert
            Assert.That(() => whereCollection[DicomTags.Undefined], Throws.ArgumentException);
        }
コード例 #3
0
        public void Indexer_NotExistingDicomTag_ReturnsEmpty()
        {
            // Arrange
            MockProvider mockProvider = new MockProvider();
            var whereCollection = mockProvider.GetWhereCollection();
            
            // Act
            var result = whereCollection[DicomTags.PatientName];

            // Assert
            Assert.That(result, Is.Empty);
        }
コード例 #4
0
        public void Indexer_ExistingDicomTag_Returns()
        {
            // Arrange
            MockProvider mockProvider = new MockProvider();
            var whereCollection = mockProvider.GetWhereCollection();
            whereCollection.WhereEquals(DicomTags.PatientName, "test");
            whereCollection.WhereEquals(DicomTags.PatientName, "test2");

            // Act
            var result = whereCollection[DicomTags.PatientName];

            // Assert
            Assert.That(result.Count(), Is.EqualTo(2));
        }
コード例 #5
0
        public void Constructor_CreatesInnerRequestWithWhereConditions()
        {
            // Arrange
            var mockProvider = new MockProvider();
            var fellowOakMockProvider = new FellowOakMockProvider();
            var whereCollection = mockProvider.GetWhereCollection();
            whereCollection.WhereEquals(DicomTags.PatientID, "PatientIDValue");
            whereCollection.WhereLike(DicomTags.PatientName, "PatientNameValue");

            // Act
            var dicomFindRequest = new FellowOakDicomFindRequest<TestInfo>(mockProvider.GetDicomMappingFake(), fellowOakMockProvider.GetDicomTagAdapterFake(), mockProvider.GetDicomInfoBuilderFake(), mockProvider.GetGeneralizedInfoProviderFake(), fellowOakMockProvider.GetDicomSopClassUidProviderFake(), c => {}, whereCollection.GetDicomWhereCollections().First());
            var innerRequestDataset = dicomFindRequest.InnerRequest.Dataset;

            // Assert
            Assert.That(innerRequestDataset.Get<string>(DicomTag.PatientID), Is.EqualTo("PatientIDValue"));
            Assert.That(innerRequestDataset.Get<string>(DicomTag.PatientName), Is.EqualTo("*PatientNameValue*"));
        }
コード例 #6
0
        public void LoadDataFromServer_GetResponse_StoresInCache()
        {
            // Arrange
            var mockProvider = new MockProvider();
            var cacheProvider = mockProvider.GetCacheProviderFake();
            var dataLoader = new DicomDataLoader<TestInfo>(cacheProvider, mockProvider.GetCacheIndexProviderFake(), mockProvider.GetDicomClientFactoryFake(), mockProvider.GetDicomRequestFactoryFake());

            var whereCollection = mockProvider.GetWhereCollection();
            whereCollection.WhereEquals(DicomTags.PatientID, 1);

            // Act
            var result = dataLoader.LoadDataFromServer(whereCollection);

            // Assert
            Assert.That(result.Count, Is.EqualTo(1));
            Assert.That(result.All(c => c.PatientID == 1), Is.True);
            Assert.That(() => cacheProvider.Received(1).Store(Arg.Any<string>(), Arg.Any<object>(), Arg.Any<bool>()), Throws.Nothing);
        }
コード例 #7
0
        public void Predicate_AdvancedMatch_True()
        {
            // Arrange
            MockProvider mockProvider = new MockProvider();
            var list = GetInfoList();
            var whereCollection = mockProvider.GetWhereCollection();

            whereCollection.WhereEquals(DicomTags.PatientID, 1);
            whereCollection.WhereEquals(DicomTags.PatientID, 2);
            whereCollection.WhereLike(DicomTags.PatientName, "test");
            whereCollection.WhereEquals(DicomTags.PatientName, "testName2");

            // Act
            var match = list.Where(whereCollection.Predicate).ToList();

            // Assert
            Assert.That(match.Count, Is.EqualTo(2));
            Assert.That(match.Any(c=>c.PatientName == "testName" && c.PatientID == 1), Is.True);
            Assert.That(match.Any(c=>c.PatientName == "testName2" && c.PatientID == 2), Is.True);
        }
コード例 #8
0
        public void WhereLike_AddsCorrectWhereItem()
        {
            // Arrange
            MockProvider mockProvider = new MockProvider();
            var whereCollection = mockProvider.GetWhereCollection();

            // Act
            whereCollection.WhereLike(DicomTags.PatientName, "test");
            var result = whereCollection.Single();

            // Assert
            Assert.That(result.Value, Is.EqualTo("test"));
            Assert.That(result.DicomTag, Is.EqualTo(DicomTags.PatientName));
            Assert.That(result.Operator, Is.EqualTo(WhereOperator.Like));
        }
コード例 #9
0
        public void WhereLike_NullValue_ThrowsException()
        {
            // Arrange
            MockProvider mockProvider = new MockProvider();
            var whereCollection = mockProvider.GetWhereCollection();

            // Act + Assert
            Assert.That(() => whereCollection.WhereLike(DicomTags.PatientID, null), Throws.TypeOf<ArgumentNullException>());
        }
コード例 #10
0
        public void ContainsTag_DoesContain_ReturnTrue()
        {
            // Arrange
            MockProvider mockProvider = new MockProvider();
            var whereCollection = mockProvider.GetWhereCollection();
            whereCollection.WhereEquals(DicomTags.PatientName, "test");

            // Act
            var result = whereCollection.ContainsTag(DicomTags.PatientName);

            // Assert
            Assert.That(result, Is.True);
        }
コード例 #11
0
        public void ContainsTag_DoesNotContain_ReturnFalse()
        {
            // Arrange
            MockProvider mockProvider = new MockProvider();
            var whereCollection = mockProvider.GetWhereCollection();
            
            // Act
            var result = whereCollection.ContainsTag(DicomTags.PatientName);

            // Assert
            Assert.That(result, Is.False);
        }
コード例 #12
0
        public void Predicate_SimpleEqualsMatch()
        {
            // Arrange
            MockProvider mockProvider = new MockProvider();
            var list = GetInfoList();

            var whereCollection = mockProvider.GetWhereCollection();
            whereCollection.WhereEquals(DicomTags.PatientID, 1);

            // Act
            TestInfo match = list.Where(whereCollection.Predicate).Single();

            Assert.That(match.PatientID, Is.EqualTo(1));
        }
コード例 #13
0
        public void Predicate_SimpleLikeMatch_WithoutContainsMethod()
        {
            // Arrange
            MockProvider mockProvider = new MockProvider();
            var list = GetInfoList();
            var whereCollection = mockProvider.GetWhereCollection();

            whereCollection.WhereLike(DicomTags.PatientID, 1);

            // Act
            var matches = list.Where(whereCollection.Predicate).ToList();

            // Assert
            Assert.That(matches.Count, Is.EqualTo(1));
        }
コード例 #14
0
        public void Predicate_MultipleEqualsMatch()
        {
            // Arrange
            MockProvider mockProvider = new MockProvider();
            var list = GetInfoList();
            list[1].PatientID = 1;

            var whereCollection = mockProvider.GetWhereCollection();
            whereCollection.WhereEquals(DicomTags.PatientID, 1);

            // Act
            var matches = list.Where(whereCollection.Predicate).ToList();

            // Assert
            Assert.That(matches.Count, Is.EqualTo(2));
            Assert.That(matches.All(c => c.PatientID == 1), Is.True);
        }
コード例 #15
0
        public void Predicate_SameDicomTag_ReturnsBoth()
        {
            // Arrange
            MockProvider mockProvider = new MockProvider();
            var list = GetInfoList();
            var whereCollection = mockProvider.GetWhereCollection();

            whereCollection.WhereEquals(DicomTags.PatientID, 1);
            whereCollection.WhereEquals(DicomTags.PatientID, 2);

            // Act
            var match = list.Where(whereCollection.Predicate);

            // Assert
            Assert.That(match.Count(), Is.EqualTo(2));
        }
コード例 #16
0
        public void LoadDataFromServer_AllCombinationsAreAddedAsRequest()
        {
            // Arrange
            var mockProvider = new MockProvider();
            var dicomClientFactory = mockProvider.GetDicomClientFactoryFake();
            var dicomClient = mockProvider.GetDicomClientFake();
            var dataLoader = new DicomDataLoader<TestInfo>(mockProvider.GetCacheProviderFake(), mockProvider.GetCacheIndexProviderFake(), dicomClientFactory, mockProvider.GetDicomRequestFactoryFake());

            dicomClientFactory.CreateDicomClient().Returns(dicomClient);

            var whereCollection = mockProvider.GetWhereCollection();
            whereCollection.WhereEquals(DicomTags.PatientID, 1);
            whereCollection.WhereEquals(DicomTags.PatientID, 2);

            whereCollection.WhereEquals(DicomTags.PatientName, "test");
            whereCollection.WhereLike(DicomTags.PatientName, "test1");

            // Act
            dataLoader.LoadDataFromServer(whereCollection);

            // Assert
            Assert.That(() => dicomClient.Received(4).AddFindRequest(Arg.Any<IDicomFindRequest<TestInfo>>()), Throws.Nothing);
        }
コード例 #17
0
        public void Predicate_EmptyMatch()
        {
            // Arrange
            MockProvider mockProvider = new MockProvider();
            var list = GetInfoList();
            var whereCollection = mockProvider.GetWhereCollection();

            // Act
            var matches = list.Where(whereCollection.Predicate).ToList();

            // Assert
            Assert.That(matches.Count, Is.EqualTo(3));
        }
コード例 #18
0
        public void Predicate_AdvancedLikeMatch_True()
        {
            // Arrange
            MockProvider mockProvider = new MockProvider();
            var list = GetInfoList();
            var whereCollection = mockProvider.GetWhereCollection();

            whereCollection.WhereLike(DicomTags.PatientID, 2);
            whereCollection.WhereLike(DicomTags.PatientName, "test");

            // Act
            TestInfo match = list.Where(whereCollection.Predicate).Single();

            // Assert
            Assert.That(match.PatientID, Is.EqualTo(2));
            Assert.That(match.PatientName, Is.EqualTo("testName2"));
        }
コード例 #19
0
        public void Predicate_AdvancedLikeMatch_False()
        {
            // Arrange
            MockProvider mockProvider = new MockProvider();
            var list = GetInfoList();
            var whereCollection = mockProvider.GetWhereCollection();

            whereCollection.WhereLike(DicomTags.PatientID, 2);
            whereCollection.WhereLike(DicomTags.PatientName, "testtt");

            // Act
            var matches = list.Where(whereCollection.Predicate).ToList();

            // Assert
            Assert.That(matches.Count, Is.EqualTo(0));
        }
コード例 #20
0
        public void GetDicomWhereCollections_ExistingConstraints_ReturnsCorrectConditions()
        {
            // Arrange
            MockProvider mockProvider = new MockProvider();
            var whereCollection = mockProvider.GetWhereCollection();

            whereCollection.WhereLike(DicomTags.PatientName, "test");
            whereCollection.WhereEquals(DicomTags.PatientID, 1);
            
            // Act
            var result = whereCollection.GetDicomWhereCollections().Single();

            // Assert
            Assert.That(result.Any(c=>c.DicomTag == DicomTags.PatientID && c.Value == "1"), Is.True);
            Assert.That(result.Any(c=>c.DicomTag == DicomTags.PatientName && c.Value == "*test*"), Is.True);
        }
コード例 #21
0
        public void GetDicomWhereCollections_ExistingConstraints_ReturnsAllCombinations()
        {
            // Arrange
            MockProvider mockProvider = new MockProvider();
            var whereCollection = mockProvider.GetWhereCollection();

            whereCollection.WhereEquals(DicomTags.PatientName, "test1");
            whereCollection.WhereEquals(DicomTags.PatientName, "test2");
            whereCollection.WhereLike(DicomTags.PatientName, "test3");
            whereCollection.WhereEquals(DicomTags.PatientID, 1);
            whereCollection.WhereEquals(DicomTags.PatientID, 2);
            whereCollection.WhereLike(DicomTags.PatientID, 3);
            whereCollection.WhereEquals(DicomTags.Modality, "test1");
            whereCollection.WhereEquals(DicomTags.Modality, "test2");
            whereCollection.WhereLike(DicomTags.Modality, "test3");
            
            // Act
            var result = whereCollection.GetDicomWhereCollections();

            // Assert
            Assert.That(result.Count(), Is.EqualTo(27));
        }
コード例 #22
0
        public void GetDicomWhereCollections_NoConstraints_ReturnsEmptyCollection()
        {
            // Arrange
            MockProvider mockProvider = new MockProvider();
            var whereCollection = mockProvider.GetWhereCollection();

            // Act
            var result = whereCollection.GetDicomWhereCollections();

            // Assert
            Assert.That(result.First(), Is.Empty);
        }