public void ShouldGetAndCacheParticularCdtFromCdtLibrary()
        {
            // Setup
            var cdtMockText = new Mock <ICdt>();

            cdtMockText.SetupGet(c => c.Name).Returns("Text");
            var cdtMockDate = new Mock <ICdt>();

            cdtMockDate.SetupGet(c => c.Name).Returns("Date");

            var cdtLibraryMock = new Mock <ICdtLibrary>();

            ICdt[] expectedCdts = new[] { cdtMockDate.Object, cdtMockText.Object };
            cdtLibraryMock.SetupGet(l => l.Name).Returns("cdtlib1");
            cdtLibraryMock.SetupGet(l => l.Cdts).Returns(expectedCdts);

            var cctsRepositoryMock = new Mock <ICctsRepository>();

            cctsRepositoryMock.Setup(r => r.GetAllLibraries()).Returns(new[] { cdtLibraryMock.Object });

            // Events
            CcCache ccCache = CcCache.GetInstance(cctsRepositoryMock.Object);
            ICdt    cdt     = ccCache.GetCdtFromCdtLibrary("cdtlib1", "Text");

            ccCache.GetCdtFromCdtLibrary("cdtlib1", "Text");

            // Assertion and Verification
            Assert.That(cdt, Is.SameAs(cdtMockText.Object));
            cdtLibraryMock.VerifyGet(l => l.Cdts, Times.Exactly(1));
        }