예제 #1
0
        public void ShouldGetAndCacheAllCcsFromCcLibrary()
        {
            // Setup
            var accMock       = new Mock <IAcc>();
            var ccLibraryMock = new Mock <ICcLibrary>();

            IAcc[] expectedAccs = new[] { accMock.Object, accMock.Object };
            ccLibraryMock.SetupGet(l => l.Name).Returns("cclib1");
            ccLibraryMock.SetupGet(l => l.Accs).Returns(expectedAccs);

            var cctsRepositoryMock = new Mock <ICctsRepository>();

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

            // Events
            CcCache     ccCache = CcCache.GetInstance(cctsRepositoryMock.Object);
            List <IAcc> accs    = ccCache.GetCcsFromCcLibrary("cclib1");

            ccCache.GetCcsFromCcLibrary("cclib1");

            // Assertion and Verification
            Assert.That(accs, Is.EquivalentTo(expectedAccs));
            ccLibraryMock.VerifyGet(l => l.Accs, Times.Exactly(1));
        }