public void ShouldGetAndCacheAllBiesFromBieLibrary() { // Setup var bieMock = new Mock <IAbie>(); var bieLibraryMock = new Mock <IBieLibrary>(); IAbie[] expectedBdts = new[] { bieMock.Object, bieMock.Object, bieMock.Object }; bieLibraryMock.SetupGet(l => l.Name).Returns("bielib1"); bieLibraryMock.SetupGet(l => l.Abies).Returns(expectedBdts); var cctsRepositoryMock = new Mock <ICctsRepository>(); cctsRepositoryMock.Setup(r => r.GetAllLibraries()).Returns(new[] { bieLibraryMock.Object }); // Events CcCache ccCache = CcCache.GetInstance(cctsRepositoryMock.Object); List <IAbie> bies = ccCache.GetBiesFromBieLibrary("bielib1"); ccCache.GetBiesFromBieLibrary("bielib1"); // Assertion and Verification Assert.That(bies, Is.EquivalentTo(expectedBdts)); bieLibraryMock.VerifyGet(l => l.Abies, Times.Exactly(1)); }