public void should_not_set_build_result_if_empty() { // --arrange var target = new Singleton(); var actual = new BuildSessionMock(); // --act target.Process(actual); // --assert actual.BuildResult.HasValue.Should().BeFalse(); }
public void process_should_return_instance([Values("expected", null)] string?expected) { // --arrange var buildSession = new BuildSessionMock(); var target = new Instance <string>(expected); // --act target.Process(buildSession); // --assert buildSession.BuildResult.Value.Should().Be(expected); }
public void should_return_no_constructor() { // --arrange var target = new GetConstructorWithMaxParametersCount(); var actual = new BuildSessionMock(Unit.IsType <NoCtor>().ToBuildChain()); // --act target.Process(actual); // --assert actual.BuildResult.HasValue.Should().BeFalse(); }
public void should_return_constructor() { // --arrange var target = new GetConstructorWithMaxParametersCount(); var actual = new BuildSessionMock(Unit.IsType <Good>().ToBuildChain()); // --act target.Process(actual); // --assert actual.BuildResult.Value.As <ConstructorInfo>().GetParameters().Select(_ => _.ParameterType).Should().Equal(typeof(int), typeof(string), typeof(bool)); }
public void should_return_no_constructor() { // --arrange var target = new GetConstructorByParameterTypes(typeof(short)); // --act var actual = new BuildSessionMock(Unit.IsType <Subject>().ToBuildChain()); target.Process(actual); // --assert actual.BuildResult.HasValue.Should().BeFalse(); }
public void should_find_constructor_without_parameters() { // --arrange var target = new GetConstructorByParameterTypes(); // --act var actual = new BuildSessionMock(Unit.IsType <Subject>().ToBuildChain()); target.Process(actual); // --assert actual.BuildResult.Value.As <ConstructorInfo>().GetParameters().Should().HaveCount(0); }
public void should_find_marked_constructor_without_point_id_among_others() { // --arrange var target = new GetConstructorByInjectPointId(); // --act var actual = new BuildSessionMock(Unit.IsType <Subject>().ToBuildChain()); target.Process(actual); // --assert actual.BuildResult.Value.As <ConstructorInfo>().GetParameters().Single().ParameterType.Should().Be <byte>(); }
public void should_find_constructor_with_optional_parameters() { var expectedTypes = new[] { typeof(int), typeof(string) }; // --arrange var target = new GetConstructorByParameterTypes(expectedTypes); // --act var actual = new BuildSessionMock(Unit.IsType <Subject>().ToBuildChain()); target.Process(actual); // --assert actual.BuildResult.Value.As <ConstructorInfo>().GetParameters().Select(_ => _.ParameterType).Should().Equal(expectedTypes); }
public void should_do_nothing_if_no_default_value() { var parameter = typeof(Subject).GetMethod(nameof(Subject.Foo)) !.GetParameters().Single(_ => !_.HasDefaultValue); // --arrange var buildSession = new BuildSessionMock(Unit.Is(parameter).Tag(SpecialTag.Argument).ToBuildChain()); var target = new GetParameterDefaultValue(); // --act target.Process(buildSession); // --assert buildSession.BuildResult.HasValue.Should().BeFalse(); }
public void should_store_build_unit([Values("expected", null)] string expected) { // --arrange var target = new Singleton(); // --act target.PostProcess(new BuildSessionMock(new BuildResult(expected))); // call where unit was built // --assert var actual = new BuildSessionMock(); target.Process(actual); // next call actual.BuildResult.Value.Should().Be(expected); }
public void should_create_unit_calling_factory_method() { const int expected = 5; // --arrange var buildSession = new BuildSessionMock(); var factory = A.Fake <Func <IBuildSession, int> >(); var callToFactory = A.CallTo(() => factory(buildSession)); callToFactory.Returns(expected); var target = new CreateWithFactoryMethod <int>(factory); // --act target.Process(buildSession); // --assert buildSession.BuildResult.Value.Should().Be(expected); callToFactory.MustHaveHappenedOnceExactly(); }