コード例 #1
0
        public async void StoreItemsInCache_StoresAllItemsInTheCache()
        {
            // Arrange
            var mockProvider = new MockProvider();
            var dicomdirParser = mockProvider.GetDicomdirFileParserFake();
            dicomdirParser.ParseDicomdirAsync(Arg.Any<string>()).Returns(Task.FromResult(GetDicomdirInfosFake()));
            var cacheProvider = mockProvider.GetCacheProviderFake();
            var cacheIndexProvider = mockProvider.GetCacheIndexProviderFake();
            cacheIndexProvider.GetCacheIndex(Arg.Any<object>()).Returns(c => c.Arg<object>().GetType().Name);

            var dicomdirFileCacheStoreProvider = new DicomdirFileCacheStoreProvider(dicomdirParser, cacheProvider, cacheIndexProvider);

            // Act
            var result = await dicomdirFileCacheStoreProvider.StoreItemsInCache("");
            var patient = result.Patients.Single();
            var study = result.Studies.Single();
            var series = result.Series.First();

            // Assert
            Assert.That(patient.PatientName.ToString(), Is.EqualTo("John Doe"));
            Assert.That(patient.PatientID.StringRepresentationWithoutSlash, Is.EqualTo("9107256444"));
            Assert.That(study.StudyInstanceUID.StringRepresentation, Is.EqualTo("1.2"));
            Assert.That(series.StudyInstanceUID.StringRepresentation, Is.EqualTo("1.2"));
            Assert.That(series.SeriesInstanceUID.StringRepresentation, Is.EqualTo("1.3"));
            Assert.That(() => cacheProvider.Received(1).Store("PatientInfo", Arg.Any<object>(), true), Throws.Nothing);
            Assert.That(() => cacheProvider.Received(1).Store("StudyInfo", Arg.Any<object>(), true), Throws.Nothing);
            Assert.That(() => cacheProvider.Received(2).Store("SeriesInfo", Arg.Any<object>(), true), Throws.Nothing);
        }