Sha256: 476d80cf1c318375a025f081d63dcbe3e8c9c38b87633c16e1253bb4498c5b3a

Contents?: true

Size: 1.93 KB

Versions: 28

Compression:

Stored size: 1.93 KB

Contents

using System;
using System.Collections.Generic;
using Generators.Input;
using Generators.Output;
using Humanizer;

namespace Generators.Exercises
{
    public class Meetup : GeneratorExercise
    {
        private const string ParamYear = "year";
        private const string ParamMonth = "month";
        private const string ParamWeek = "week";
        private const string ParamDayOfWeek = "dayofweek";

        private const string PropertyDay = "Day";

        protected override void UpdateCanonicalData(CanonicalData canonicalData)
        {
            foreach (var canonicalDataCase in canonicalData.Cases)
            {
                canonicalDataCase.Property = PropertyDay;
                canonicalDataCase.UseVariableForExpected = true;
                canonicalDataCase.SetConstructorInputParameters(ParamMonth, ParamYear);
                canonicalDataCase.SetInputParameters(ParamDayOfWeek, ParamWeek);

                canonicalDataCase.Input[ParamYear] = canonicalDataCase.Input[ParamYear];
                canonicalDataCase.Input[ParamMonth] = canonicalDataCase.Input[ParamMonth];
                canonicalDataCase.Input[ParamWeek] =
                    new UnescapedValue($"Schedule.{((string)canonicalDataCase.Input[ParamWeek]).Transform(To.SentenceCase)}");
                canonicalDataCase.Input[ParamDayOfWeek] =
                    new UnescapedValue($"DayOfWeek.{((string)canonicalDataCase.Input[ParamDayOfWeek]).Transform(To.SentenceCase)}");
            }
        }

        protected override String RenderTestMethodBodyAssert(TestMethodBody testMethodBody)
        {
            string template = $"Assert.Equal({{{{ ExpectedParameter }}}}, {{{{ TestedValue }}}}.ToString(\"yyyy-MM-dd\"));";

            return TemplateRenderer.RenderInline(template, testMethodBody.AssertTemplateParameters);
        }

        protected override HashSet<String> AddAdditionalNamespaces() => new HashSet<string> { typeof(DayOfWeek).Namespace };
    }
}

Version data entries

28 entries across 28 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/csharp/generators/Exercises/Meetup.cs
trackler-2.2.1.179 tracks/csharp/generators/Exercises/Meetup.cs
trackler-2.2.1.178 tracks/csharp/generators/Exercises/Meetup.cs
trackler-2.2.1.177 tracks/csharp/generators/Exercises/Meetup.cs
trackler-2.2.1.176 tracks/csharp/generators/Exercises/Meetup.cs
trackler-2.2.1.175 tracks/csharp/generators/Exercises/Meetup.cs
trackler-2.2.1.174 tracks/csharp/generators/Exercises/Meetup.cs
trackler-2.2.1.173 tracks/csharp/generators/Exercises/Meetup.cs
trackler-2.2.1.172 tracks/csharp/generators/Exercises/Meetup.cs
trackler-2.2.1.171 tracks/csharp/generators/Exercises/Meetup.cs
trackler-2.2.1.170 tracks/csharp/generators/Exercises/Meetup.cs
trackler-2.2.1.169 tracks/csharp/generators/Exercises/Meetup.cs
trackler-2.2.1.167 tracks/csharp/generators/Exercises/Meetup.cs
trackler-2.2.1.166 tracks/csharp/generators/Exercises/Meetup.cs
trackler-2.2.1.165 tracks/csharp/generators/Exercises/Meetup.cs
trackler-2.2.1.164 tracks/csharp/generators/Exercises/Meetup.cs
trackler-2.2.1.163 tracks/csharp/generators/Exercises/Meetup.cs
trackler-2.2.1.162 tracks/csharp/generators/Exercises/Meetup.cs
trackler-2.2.1.161 tracks/csharp/generators/Exercises/Meetup.cs
trackler-2.2.1.160 tracks/csharp/generators/Exercises/Meetup.cs