public void TestContainsCache() { // First have underlying store report true _mockStore1.Setup(x => x.Contains(_digest1)).Returns(true); Assert.IsTrue(_testStore.Contains(_digest1)); // Then check the composite cached the result _mockStore1.Setup(x => x.Contains(_digest1)).Throws(new AssertionException("Should not call underlying store when result is cached")); Assert.IsTrue(_testStore.Contains(_digest1)); // Then clear cache and report different result _testStore.Flush(); _mockStore1.Setup(x => x.Contains(_digest1)).Returns(false); _mockStore2.Setup(x => x.Contains(_digest1)).Returns(false); Assert.IsFalse(_testStore.Contains(_digest1)); }