public void TestFailsWhenUnspecifiedDependenciesAreCalled() { var sut = BloatedConstructorHelper.Make <BBOM_WithOnlyAbstractDependencies>().Build(); Assert.Throws <Moq.MockException>(() => sut.SomeMethodDependingOnA("I have not specified dependency A for this test")); }
public void InvolvedDependenciesCanBeSpecified() { var sut = BloatedConstructorHelper.Make <BBOM_WithOnlyAbstractDependencies>() .With <IDependencyA>(new SomeImplementationOfDependencyA()) .Build(); Assert.AreEqual(10, sut.SomeMethodDependingOnA("5")); }
public void InterfacesAreStrictlyMockedByDefault() { //AutoMocking dependencies A and B var sut = BloatedConstructorHelper.Make <BBOM_WithOnlyAbstractDependencies>().Build(); Assert.IsNotNull(sut); Assert.IsInstanceOf <BBOM_WithOnlyAbstractDependencies>(sut); }
public void NonAbstractDependenciesWithConstructorArgumentsCannotBeAutoMocked() { Assert.Throws <Castle.DynamicProxy.InvalidProxyConstructorArgumentsException>(() => BloatedConstructorHelper.Make <BBOM_WithClassDependencies>() .Build()); Assert.DoesNotThrow(() => BloatedConstructorHelper.Make <BBOM_WithClassDependencies>() .With(new ImplementationX(1, 2)) .Build()); }