public void MustReturnFactoryMethodResultWhenTypeDoesntExist() { var newContext = new AnotherFakeContext(); var doesExistBefore = _sut.TryGet <AnotherFakeContext>(out var ctx); Assert.False(doesExistBefore); Assert.Null(ctx); var c1New = _sut.GetOrAdd(() => newContext); var doesExistAfter = _sut.TryGet <AnotherFakeContext>(out var ctx2); Assert.Equal(newContext, c1New); Assert.Same(newContext, c1New); Assert.Equal(newContext, ctx2); Assert.True(doesExistAfter); }