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)); }