public void IfServiceDescriptorWithImplementationInstanceIsProvided_ThenNullIsReturned() { // Arrange var registeredServices = new RegisteredServices <string, IFoo>(); var singletonDescriptor = ServiceDescriptor.Singleton <IFoo>(new Foo()); var key = "key"; // Act Func <ServiceDescriptor> act = () => registeredServices.TryAddService(key, singletonDescriptor); // Asset var result = act.Should().NotThrow().Subject; result.Should().BeNull(); }
public void IfTheSameKeyIsAddedMultipleTimes_ThenOnlyFirstCallReturnsAdjustedServiceDescriptorAndSubsequentCallsRetunNull() { // Arrange var registeredServices = new RegisteredServices <string, IFoo>(); var transientDescriptor = ServiceDescriptor.Transient <IFoo, Foo>(); var key = "key"; // Act Func <(ServiceDescriptor, ServiceDescriptor, ServiceDescriptor)> act = () => ( registeredServices.TryAddService(key, transientDescriptor), registeredServices.TryAddService(key, transientDescriptor), registeredServices.TryAddService(key, transientDescriptor) ); // Asset using (new AssertionScope()) { var(result1, result2, result3) = act.Should().NotThrow().Subject; result1.Should().BeEquivalentTo(ServiceDescriptor.Transient <Foo, Foo>()); result2.Should().BeNull(); result3.Should().BeNull(); } }