public void Parse_string_scalar_and_sequence_adjacent(string[] arguments, FakeOptionsWithScalarValueAndSequenceStringAdjacent expected)
        {
            // Fixture setup in attributes

            // Exercize system
            var result = InstanceBuilder.Build(
                Maybe.Just <Func <FakeOptionsWithScalarValueAndSequenceStringAdjacent> >(() => new FakeOptionsWithScalarValueAndSequenceStringAdjacent()),
                arguments,
                StringComparer.Ordinal,
                CultureInfo.InvariantCulture);

            // Verify outcome
            expected.ShouldBeEquivalentTo(result.Value);

            // Teardown
        }
        public void Parse_nullable_long(string[] arguments, long?expected)
        {
            // Fixture setup in attributes

            // Exercize system
            var result = InstanceBuilder.Build(
                Maybe.Just <Func <FakeOptionsWithNullables> >(() => new FakeOptionsWithNullables()),
                arguments,
                StringComparer.Ordinal,
                CultureInfo.InvariantCulture);

            // Verify outcome
            expected.ShouldBeEquivalentTo(result.Value.NullableLong);

            // Teardown
        }
        public void Parse_string_scalar_with_required_constraint_as_value(string[] arguments, FakeOptionsWithRequiredValue expected)
        {
            // Fixture setup in attributes

            // Exercize system
            var result = InstanceBuilder.Build(
                Maybe.Just <Func <FakeOptionsWithRequiredValue> >(() => new FakeOptionsWithRequiredValue()),
                arguments,
                StringComparer.Ordinal,
                CultureInfo.InvariantCulture);

            // Verify outcome
            expected.ShouldBeEquivalentTo(result.Value);

            // Teardown
        }
        public void Parse_double_value(string[] arguments, double expected)
        {
            // Fixture setup in attributes

            // Exercize system
            var result = InstanceBuilder.Build(
                Maybe.Just <Func <FakeOptionsWithDouble> >(() => new FakeOptionsWithDouble()),
                arguments,
                StringComparer.Ordinal,
                CultureInfo.InvariantCulture);

            // Verify outcome
            Assert.Equal(expected, result.Value.DoubleValue);

            // Teardown
        }
        public void Parse_utf8_string_correctly(string[] arguments, string expected)
        {
            // Fixture setup in attributes

            // Exercize system
            var result = InstanceBuilder.Build(
                Maybe.Just <Func <FakeOptions> >(() => new FakeOptions()),
                arguments,
                StringComparer.Ordinal,
                CultureInfo.InvariantCulture);

            // Verify outcome
            expected.ShouldBeEquivalentTo(result.Value.StringValue);

            // Teardown
        }
        public void Omitting_names_assumes_identifier_as_long_name(string[] arguments, string expected)
        {
            // Fixture setup in attributes

            // Exercize system
            var result = InstanceBuilder.Build(
                Maybe.Just <Func <FakeOptions> >(() => new FakeOptions()),
                arguments,
                StringComparer.Ordinal,
                CultureInfo.InvariantCulture);

            // Verify outcome
            Assert.True(expected.Equals(result.Value.StringValue));

            // Teardown
        }
        public void Parse_string_sequence_with_separator(string[] arguments, string[] expected)
        {
            // Fixture setup in attributes

            // Exercize system
            var result = InstanceBuilder.Build(
                Maybe.Just <Func <FakeOptionsWithSequenceAndSeparator> >(() => new FakeOptionsWithSequenceAndSeparator()),
                arguments,
                StringComparer.Ordinal,
                CultureInfo.InvariantCulture);

            // Verify outcome
            expected.ShouldBeEquivalentTo(result.Value.StringSequence);

            // Teardown
        }
        public void Parse_enum_value(string[] arguments, Colors expected)
        {
            // Fixture setup in attribute

            // Exercize system
            var result = InstanceBuilder.Build(
                Maybe.Just <Func <FakeOptionsWithEnum> >(() => new FakeOptionsWithEnum()),
                arguments,
                StringComparer.Ordinal,
                CultureInfo.InvariantCulture);

            // Verify outcome
            expected.ShouldBeEquivalentTo(result.Value.Colors);

            // Teardown
        }
        public void Parse_to_immutable_instance(string[] arguments, FakeImmutableOptions expected)
        {
            // Fixture setup in attributes

            // Exercize system
            var result = InstanceBuilder.Build(
                Maybe.Nothing <Func <FakeImmutableOptions> >(),
                arguments,
                StringComparer.Ordinal,
                CultureInfo.InvariantCulture);

            // Verify outcome
            expected.ShouldBeEquivalentTo(result.Value);

            // Teardown
        }
        public void Parse_int_sequence_with_range(string[] arguments, int[] expected)
        {
            // Fixture setup in attributes

            // Exercize system
            var result = InstanceBuilder.Build(
                Maybe.Just <Func <FakeOptions> >(() => new FakeOptions()),
                arguments,
                StringComparer.Ordinal,
                CultureInfo.InvariantCulture);

            // Verify outcome
            Assert.True(expected.SequenceEqual(result.Value.IntSequence));

            // Teardown
        }
        private static Instance ParseClass(string fullFileName, IEnumerable <Member> members)
        {
            //TODO: Gross
            var parts     = fullFileName.Split('\\').ToList();
            var fileName  = parts.Last();
            var className = fileName.Split('.')[0];

            parts.RemoveRange(parts.Count - 1, 1);
            var packageLocation = string.Join("\\", parts);

            parts.RemoveAt(0);
            var packageName = string.Join(".", parts);
            var codeBag     = new CodeBag(packageName, CodeBagType.Package, packageLocation);

            return(InstanceBuilder.Build(codeBag, className, new Location(Path.Combine(packageLocation, fileName)), members));
        }
        public void Parse_string_sequence_with_only_max_constraint(string[] arguments, string[] expected)
        {
            // Fixture setup with attributes

            // Exercize system
            var result = InstanceBuilder.Build(
                Maybe.Just <Func <FakeOptionsWithSequenceAndOnlyMaxConstraint> >(() => new FakeOptionsWithSequenceAndOnlyMaxConstraint()),
                arguments,
                StringComparer.Ordinal,
                CultureInfo.InvariantCulture);

            // Verify outcome
            Assert.True(expected.SequenceEqual(result.Value.StringSequence));

            // Teardown
        }
Exemple #13
0
        public void ShouldNotApplyWhenPhysicalPathDiffers()
        {
            var mbr     = new Member("store", 1, 1, 1);
            var cls     = InstanceBuilder.Build(new CodeBag("dev", CodeBagType.Namespace, @"C:\dev"), "name", @"C:\dev\name.cs", 1, 1, 3, 1, new[] { mbr });
            var toApply = InstanceBuilder.Build(new CodeBag("dev", CodeBagType.Namespace, @"C:\dev"), "namexxx", @"C:\dev\namexxx.cs", 2, 2, 2, 2, new[] { mbr });

            cls.Apply(toApply);

            Validate.Begin().IsNotNull(cls, "class")
            .IsEqual(cls.Members.Count, 1, "mbr count")
            .IsEqual(cls.NumberOfMethods, 1, "# Methods")
            .IsEqual(cls.LinesOfCode, 1, "loc")
            .IsEqual(cls.CyclomaticComplexity, 1, "cyclo")
            .IsEqual(cls.DepthOfInheritance, 3, "DIT")
            .IsEqual(cls.ClassCoupling, 1, "class coupling")
            .Check();
        }
Exemple #14
0
        public void Breaking_equal_min_max_constraint_in_string_sequence_as_value_gererates_SequenceOutOfRangeError()
        {
            // Fixture setup
            var expectedResult = new[] { new SequenceOutOfRangeError(NameInfo.EmptyName) };

            // Exercize system
            var result = InstanceBuilder.Build(
                Maybe.Just <Func <FakeOptionsWithSequenceMinMaxEqual> >(() => new FakeOptionsWithSequenceMinMaxEqual()),
                new[] { "one", "two", "this-is-too-much" },
                StringComparer.Ordinal,
                CultureInfo.InvariantCulture);

            // Verify outcome
            Assert.True(expectedResult.SequenceEqual(((NotParsed <FakeOptionsWithSequenceMinMaxEqual>)result).Errors));

            // Teardown
        }
Exemple #15
0
        public void Breaking_required_constraint_in_string_scalar_as_value_generates_MissingRequiredOptionError()
        {
            // Fixture setup
            var expectedResult = new[] { new MissingRequiredOptionError(NameInfo.EmptyName) };

            // Exercize system
            var result = InstanceBuilder.Build(
                Maybe.Just <Func <FakeOptionsWithRequiredValue> >(() => new FakeOptionsWithRequiredValue()),
                new string[] { },
                StringComparer.Ordinal,
                CultureInfo.InvariantCulture);

            // Verify outcome
            Assert.True(expectedResult.SequenceEqual(((NotParsed <FakeOptionsWithRequiredValue>)result).Errors));

            // Teardown
        }
Exemple #16
0
        public void Parse_unknown_short_option_in_option_group_gererates_UnknownOptionError()
        {
            // Fixture setup
            var expectedResult = new[] { new UnknownOptionError("z") };

            // Exercize system
            var result = InstanceBuilder.Build(
                Maybe.Just <Func <FakeOptions> >(() => new FakeOptions()),
                new[] { "-zx" },
                StringComparer.Ordinal,
                CultureInfo.InvariantCulture);

            // Verify outcome
            Assert.True(expectedResult.SequenceEqual(((NotParsed <FakeOptions>)result).Errors));

            // Teardown
        }
Exemple #17
0
        public void Wrong_range_in_sequence_gererates_SequenceOutOfRangeError()
        {
            // Fixture setup
            var expectedResult = new[] { new SequenceOutOfRangeError(new NameInfo("i", "")) };

            // Exercize system
            var result = InstanceBuilder.Build(
                Maybe.Just <Func <FakeOptions> >(() => new FakeOptions()),
                new [] { "-i", "10" },
                StringComparer.Ordinal,
                CultureInfo.InvariantCulture);

            // Verify outcome
            Assert.True(expectedResult.SequenceEqual(((NotParsed <FakeOptions>)result).Errors));

            // Teardown
        }
Exemple #18
0
        public void Omitting_required_option_gererates_MissingRequiredOptionError()
        {
            // Fixture setup
            var expectedResult = new[] { new MissingRequiredOptionError(new NameInfo("", "str")) };

            // Exercize system
            var result = InstanceBuilder.Build(
                Maybe.Just <Func <FakeOptionsWithRequired> >(() => new FakeOptionsWithRequired()),
                new string[] { },
                StringComparer.Ordinal,
                CultureInfo.InvariantCulture);

            // Verify outcome
            Assert.True(expectedResult.SequenceEqual(((NotParsed <FakeOptionsWithRequired>)result).Errors));

            // Teardown
        }
        public void Parse_string_scalar_and_sequence_adjacent(string[] arguments, Options_With_Scalar_Value_And_Adjacent_SequenceString expected)
        {
            // Fixture setup in attributes

            // Exercize system
            var result = InstanceBuilder.Build(
                Maybe.Just <Func <Options_With_Scalar_Value_And_Adjacent_SequenceString> >(() => new Options_With_Scalar_Value_And_Adjacent_SequenceString()),
                arguments,
                StringComparer.Ordinal,
                CultureInfo.InvariantCulture,
                Enumerable.Empty <ErrorType>());

            // Verify outcome
            expected.ShouldBeEquivalentTo(((Parsed <Options_With_Scalar_Value_And_Adjacent_SequenceString>)result).Value);

            // Teardown
        }
        public void Parse_int_sequence(string[] arguments, int[] expected)
        {
            // Fixture setup in attributes

            // Exercize system
            var result = InstanceBuilder.Build(
                Maybe.Just <Func <Options_With_Sequence> >(() => new Options_With_Sequence()),
                arguments,
                StringComparer.Ordinal,
                CultureInfo.InvariantCulture,
                Enumerable.Empty <ErrorType>());

            // Verify outcome
            ((Parsed <Options_With_Sequence>)result).Value.IntSequence.ShouldBeEquivalentTo(expected);

            // Teardown
        }
        public void Parse_utf8_string_correctly(string[] arguments, string expected)
        {
            // Fixture setup in attributes

            // Exercize system
            var result = InstanceBuilder.Build(
                Maybe.Just <Func <Simple_Options> >(() => new Simple_Options()),
                arguments,
                StringComparer.Ordinal,
                CultureInfo.InvariantCulture,
                Enumerable.Empty <ErrorType>());

            // Verify outcome
            expected.ShouldBeEquivalentTo(((Parsed <Simple_Options>)result).Value.StringValue);

            // Teardown
        }
        public void Parse_to_immutable_instance(string[] arguments, Immutable_Simple_Options expected)
        {
            // Fixture setup in attributes

            // Exercize system
            var result = InstanceBuilder.Build(
                Maybe.Nothing <Func <Immutable_Simple_Options> >(),
                arguments,
                StringComparer.Ordinal,
                CultureInfo.InvariantCulture,
                Enumerable.Empty <ErrorType>());

            // Verify outcome
            expected.ShouldBeEquivalentTo(((Parsed <Immutable_Simple_Options>)result).Value);

            // Teardown
        }
        public void Parse_long_sequence_with_separator(string[] arguments, long[] expected)
        {
            // Fixture setup in attributes

            // Exercize system
            var result = InstanceBuilder.Build(
                Maybe.Just <Func <Options_With_Sequence_Having_Separator_Set> >(() => new Options_With_Sequence_Having_Separator_Set()),
                arguments,
                StringComparer.Ordinal,
                CultureInfo.InvariantCulture,
                Enumerable.Empty <ErrorType>());

            // Verify outcome
            expected.ShouldBeEquivalentTo(((Parsed <Options_With_Sequence_Having_Separator_Set>)result).Value.LongSequence);

            // Teardown
        }
        public void Parse_unknown_long_option_gererates_UnknownOptionError()
        {
            // Fixture setup
            var expectedResult = new[] { new UnknownOptionError("xyz") };

            // Exercize system
            var result = InstanceBuilder.Build(
                Maybe.Just <Func <FakeOptions> >(() => new FakeOptions()),
                new[] { "--stringvalue", "abc", "--xyz" },
                StringComparer.Ordinal,
                CultureInfo.InvariantCulture);

            // Verify outcome
            Assert.True(expectedResult.SequenceEqual(result.Errors));

            // Teardown
        }
        public void Parse_nullable_long(string[] arguments, long?expected)
        {
            // Fixture setup in attributes

            // Exercize system
            var result = InstanceBuilder.Build(
                Maybe.Just <Func <Options_With_Nullables> >(() => new Options_With_Nullables()),
                arguments,
                StringComparer.Ordinal,
                CultureInfo.InvariantCulture,
                Enumerable.Empty <ErrorType>());

            // Verify outcome
            expected.ShouldBeEquivalentTo(((Parsed <Options_With_Nullables>)result).Value.NullableLong);

            // Teardown
        }
Exemple #26
0
        public void Breaking_min_constraint_in_string_sequence_gererates_MissingValueOptionError()
        {
            // Fixture setup
            var expectedResult = new[] { new MissingValueOptionError(new NameInfo("s", "string-seq")) };

            // Exercize system
            var result = InstanceBuilder.Build(
                Maybe.Just <Func <FakeOptionsWithSequenceAndOnlyMinConstraint> >(() => new FakeOptionsWithSequenceAndOnlyMinConstraint()),
                new[] { "-s" },
                StringComparer.Ordinal,
                CultureInfo.InvariantCulture);

            // Verify outcome
            Assert.True(expectedResult.SequenceEqual(((NotParsed <FakeOptionsWithSequenceAndOnlyMinConstraint>)result).Errors));

            // Teardown
        }
        public void Parse_string_scalar_with_required_constraint_as_value(string[] arguments, Options_With_Required_Set_To_True_For_Values expected)
        {
            // Fixture setup in attributes

            // Exercize system
            var result = InstanceBuilder.Build(
                Maybe.Just <Func <Options_With_Required_Set_To_True_For_Values> >(() => new Options_With_Required_Set_To_True_For_Values()),
                arguments,
                StringComparer.Ordinal,
                CultureInfo.InvariantCulture,
                Enumerable.Empty <ErrorType>());

            // Verify outcome
            expected.ShouldBeEquivalentTo(((Parsed <Options_With_Required_Set_To_True_For_Values>)result).Value);

            // Teardown
        }
Exemple #28
0
        public void Breaking_max_constraint_in_string_sequence_gererates_SequenceOutOfRangeError()
        {
            // Fixture setup
            var expectedResult = new[] { new SequenceOutOfRangeError(new NameInfo("s", "string-seq")) };

            // Exercize system
            var result = InstanceBuilder.Build(
                Maybe.Just <Func <FakeOptionsWithSequenceAndOnlyMaxConstraint> >(() => new FakeOptionsWithSequenceAndOnlyMaxConstraint()),
                new[] { "--string-seq=one", "two", "three", "this-is-too-much" },
                StringComparer.Ordinal,
                CultureInfo.InvariantCulture);

            // Verify outcome
            Assert.True(expectedResult.SequenceEqual(((NotParsed <FakeOptionsWithSequenceAndOnlyMaxConstraint>)result).Errors));

            // Teardown
        }
Exemple #29
0
        public void Remove_BufferConnectedToOutputPort_RemoveBuffer()
        {
            var hostModule = CreateHostModule("test_module");
            var builder    = new InstanceBuilder(DummyNetlist, hostModule.Name);

            _instanceRepository.Add(builder.New("x_buf", "inst1").Add("i", "out").Add("o", "w4").Build());
            _instanceRepository.Add(builder.New("an2", "inst2").Add("a", "w1").Add("b", "w2").Add("z", "out").Build());

            _target.Remove(DummyNetlist, "x_buf", "i", "o");

            var result = _instanceRepository.GetByModuleName(DummyNetlist, "x_buf").ToList();

            Assert.That(result, Is.Empty);

            result = _instanceRepository.GetByModuleName(DummyNetlist, "an2").ToList();
            Assert.That(result[0].Net, Has.Exactly(1).Matches <PortWirePair>(pwp => pwp.Port == "z" && pwp.Wire == "w4"));
        }
Exemple #30
0
        public void Parse_enum_value_with_wrong_item_name_case_generates_BadFormatConversionError()
        {
            // Fixture setup
            var expectedResult = new[] { new BadFormatConversionError(new NameInfo("", "colors")) };

            // Exercize system
            var result = InstanceBuilder.Build(
                Maybe.Just <Func <FakeOptionsWithEnum> >(() => new FakeOptionsWithEnum()),
                new[] { "--colors", "RED" },
                StringComparer.Ordinal,
                CultureInfo.InvariantCulture);

            // Verify outcome
            Assert.True(expectedResult.SequenceEqual(((NotParsed <FakeOptionsWithEnum>)result).Errors));

            // Teardown
        }