public void Factory_ShouldThrowException_WhenValueIsNull() { // Arrange var type = typeof(string); var mockFactory = new Mock <IFactory>(MockBehavior.Strict); var subject = new TransientLifetime(type, mockFactory.Object); // Act Action action = () => subject.Factory = null; // Assert action.ShouldThrow <ArgumentNullException>(); }
public void Constructor_ShouldStoreParameters() { // Arrange var type = typeof(string); var mockFactory = new Mock <IFactory>(MockBehavior.Strict); // Act var result = new TransientLifetime(type, mockFactory.Object); // Assert result.ImplementationType.ShouldBeSameAs(type); result.Factory.ShouldBeSameAs(mockFactory.Object); }
public void Factory_ShouldStoreNewValue() { // Arrange var type = typeof(string); var mockFactory1 = new Mock <IFactory>(MockBehavior.Strict); var mockFactory2 = new Mock <IFactory>(MockBehavior.Strict); var subject = new TransientLifetime(type, mockFactory1.Object); // Act subject.Factory = mockFactory2.Object; // Assert subject.Factory.ShouldBeSameAs(mockFactory2.Object); }
public void GetInstance_ShouldConstructNewInstance() { // Arrange var type = typeof(string); var instance = "hello"; var mockFactory = new Mock <IFactory>(MockBehavior.Strict); mockFactory .Setup(f => f.ConstructNewInstance()) .Returns(instance); var subject = new TransientLifetime(type, mockFactory.Object); // Act var result = subject.GetInstance(); // Assert result.ShouldBe(instance); mockFactory.VerifyAll(); }