public void TestLoadMoniker() { var mockProvider = new MockProvider(); using (var provider = new IpcProviderWithMemoization(mockProvider)) { // load some monikers var id = Guid.NewGuid().ToString(); var moniker1 = provider.LoadOrCreateMoniker(id); var moniker2 = provider.LoadOrCreateMoniker(id); // assert they are equal and that no underlying moniker was created Assert.Equal(moniker1, moniker2); Assert.Equal(0, mockProvider.NumCreateMonikerCalls); // serialize those monikers provider.RenderConnectionString(moniker1); provider.RenderConnectionString(moniker2); // assert that exactly 1 underlying moniker was created Assert.Equal(1, mockProvider.NumCreateMonikerCalls); Assert.Equal(1, mockProvider.NumRenderConnectionStringCalls); } }