public void GetArguments_MultipleParameters_InvokesServiceCreator() { var subject = new ArgumentGenerator(_serviceLocatorMock.Object, _serviceCreatorMock.Object); Type[] types = { typeof(IDisposable), typeof(IFormatProvider) }; var created1 = new MemoryStream(); var created2 = CultureInfo.CurrentCulture; var container = _containerMock.Object; _serviceCreatorMock .Setup(creator => creator.Create(types[0], container)) .Returns(() => created1); _serviceCreatorMock .Setup(creator => creator.Create(types[1], container)) .Returns(() => created2); var result = subject.GetArguments(types, null).ToList(); Assert.AreEqual(2, result.Count); Assert.AreSame(created1, result[0]); Assert.AreSame(created2, result[1]); }
public void GetArguments_OneParameterThatDoesntMatchTarget_ThrowsException() { var subject = new ArgumentGenerator(_serviceLocatorMock.Object, _serviceCreatorMock.Object); Assert.Throws<ArgumentException>(() => { subject.GetArguments(new[] { typeof(IDisposable) }, "Test").ToList(); }); }
public void GetArguments_ZeroParameters_ReturnsEmptyArray() { var subject = new ArgumentGenerator(_serviceLocatorMock.Object, _serviceCreatorMock.Object); Assert.IsEmpty(subject.GetArguments(new Type[0], null)); }
public void GetArguments_OneParameterThatMatchesTarget_ReturnsTarget() { var subject = new ArgumentGenerator(_serviceLocatorMock.Object, _serviceCreatorMock.Object); var target = new MemoryStream(); var result = subject.GetArguments(new[] { typeof(IDisposable) }, target).ToList(); Assert.AreEqual(1, result.Count); Assert.AreSame(target, result[0]); }