Beispiel #1
0
    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();
    }
Beispiel #2
0
    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));
    }
Beispiel #5
0
    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();
    }
Beispiel #6
0
    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);
    }
Beispiel #7
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>();
    }
Beispiel #8
0
    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();
    }
Beispiel #10
0
    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);
    }
Beispiel #11
0
    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();
    }