public void ShouldGetAndCacheCcLibraries() { // Setup var ccLibraryMock = new Mock <ICcLibrary>(); var cctsRepositoryMock = new Mock <ICctsRepository>(); var expectedCcLibraries = new[] { ccLibraryMock.Object }; cctsRepositoryMock.Setup(r => r.GetAllLibraries()).Returns(expectedCcLibraries); // Events CcCache ccCache = CcCache.GetInstance(cctsRepositoryMock.Object); List <ICcLibrary> ccLibraries = ccCache.GetCcLibraries(); ccCache.GetCcLibraries(); // Assertion and Verification Assert.That(ccLibraries, Is.EquivalentTo(expectedCcLibraries)); cctsRepositoryMock.Verify(r => r.GetAllLibraries(), Times.Exactly(1)); }