public void Throw_If_Null_Key_Is_Passed() { // arrange var sut = new DefaultConverterCache(); Action mightThrow = () => sut.GetOrAdd <object>(null, () => 1); // act // assert mightThrow.Should().Throw <ArgumentNullException>(); }
public void Return_True_Only_If_Item_Is_In_Map() { // arrange var sut = new DefaultConverterCache(); var key = new StringBuilder(100); var val = new StringBuilder(100); // act var a = sut.GetOrAdd(key, () => val, () => val.Append("setup!")); // assert sut.Contains(key).Should().BeTrue(); }
public void Return_The_Same_Object_When_Requested_Twice() { // arrange var sut = new DefaultConverterCache(); var key = new StringBuilder(100); var val = new StringBuilder(100); // act var a = sut.GetOrAdd(key, () => val, () => val.Append("setup!")); var b = sut.GetOrAdd(key, () => val, () => val.Append("setup 2!")); // assert a.Should().BeSameAs(b); a.ToString().Should().Be("setup!"); }