Sha256: 5565ef9954054eb3925239168a50afd4ef51422c0c8bcb0cc7abcd5df9e8138a

Contents?: true

Size: 1.96 KB

Versions: 70

Compression:

Stored size: 1.96 KB

Contents

using System;
using System.Linq;

namespace Generators.Methods
{
    public class EqualityTestMethodGenerator : TestMethodGenerator
    {
        private const string Tab = "    ";

        protected override string Body 
        {
            get
            {
                switch (TestMethodData.Options.TestedMethodType)
                {
                    case TestedMethodType.Static:
                        if (TestMethodData.Options.UseVariableForExpected)
                            return $"var expected = {FormattedExpectedVariable};\nAssert.Equal(expected, {TestedClassName}.{TestedMethod}({Input}));";

                        return $"Assert.Equal({Expected}, {TestedClassName}.{TestedMethod}({Input}));";
                    case TestedMethodType.Instance:
                        if (TestMethodData.Options.UseVariableForExpected)
                            return $"var expected = {FormattedExpectedVariable};\nvar sut = new {TestedClassName}();\n    Assert.Equal({Expected}, sut.{TestedMethod}({Input}));";

                        return $"var sut = new {TestedClassName}();\n    Assert.Equal({Expected}, sut.{TestedMethod}({Input}));";
                    case TestedMethodType.Extension:
                        if (TestMethodData.Options.UseVariableForExpected)
                            return $"var expected = {FormattedExpectedVariable};\nAssert.Equal(expected, {Input}.{TestedMethod}());";

                        return $"Assert.Equal({Expected}, {Input}.{TestedMethod}());";
                    default:
                        throw new ArgumentOutOfRangeException();
                }
            }
        }

        protected virtual string FormattedExpectedVariable
        {
            get
            {
                var lines = Expected.ToString().Split('\n');
                if (lines.Length == 1)
                    return lines[0];

                return "\n" + string.Join("\n", lines.Select(line => $"{Tab}{line}"));
            }
        }
    }
}

Version data entries

70 entries across 70 versions & 1 rubygems

Version Path
trackler-2.1.0.48 tracks/csharp/generators/Methods/EqualityTestMethodGenerator.cs
trackler-2.1.0.47 tracks/csharp/generators/Methods/EqualityTestMethodGenerator.cs
trackler-2.1.0.46 tracks/csharp/generators/Methods/EqualityTestMethodGenerator.cs
trackler-2.1.0.45 tracks/csharp/generators/Methods/EqualityTestMethodGenerator.cs
trackler-2.1.0.44 tracks/csharp/generators/Methods/EqualityTestMethodGenerator.cs
trackler-2.1.0.43 tracks/csharp/generators/Methods/EqualityTestMethodGenerator.cs
trackler-2.1.0.42 tracks/csharp/generators/Methods/EqualityTestMethodGenerator.cs
trackler-2.1.0.41 tracks/csharp/generators/Methods/EqualityTestMethodGenerator.cs
trackler-2.1.0.40 tracks/csharp/generators/Methods/EqualityTestMethodGenerator.cs
trackler-2.1.0.39 tracks/csharp/generators/Methods/EqualityTestMethodGenerator.cs
trackler-2.1.0.38 tracks/csharp/generators/Methods/EqualityTestMethodGenerator.cs
trackler-2.1.0.37 tracks/csharp/generators/Methods/EqualityTestMethodGenerator.cs
trackler-2.1.0.36 tracks/csharp/generators/Methods/EqualityTestMethodGenerator.cs
trackler-2.1.0.34 tracks/csharp/generators/Methods/EqualityTestMethodGenerator.cs
trackler-2.1.0.33 tracks/csharp/generators/Methods/EqualityTestMethodGenerator.cs
trackler-2.1.0.32 tracks/csharp/generators/Methods/EqualityTestMethodGenerator.cs
trackler-2.1.0.31 tracks/csharp/generators/Methods/EqualityTestMethodGenerator.cs
trackler-2.1.0.30 tracks/csharp/generators/Methods/EqualityTestMethodGenerator.cs
trackler-2.1.0.29 tracks/csharp/generators/Methods/EqualityTestMethodGenerator.cs
trackler-2.1.0.28 tracks/csharp/generators/Methods/EqualityTestMethodGenerator.cs