public void ReflectNouns_HappyPath(Dictionary <string, Noun> expectedResponse, Assembly inputAssembly)
        {
            var routeAttributeReflector = new RouteAttributeReflector(SerilogFixture.UsefullLogger <RouteAttributeReflector>());
            var sut            = new RouteMetadataBuilder(SerilogFixture.UsefullLogger <RouteMetadataBuilder>(), routeAttributeReflector);
            var actualResponse = sut.GetMetadata(inputAssembly);

            actualResponse.Keys.Should().Contain(expectedResponse.Keys);

            foreach (var expectedKvp in expectedResponse)
            {
                var actualNoun = actualResponse[expectedKvp.Key];

                actualNoun.Verbs.Should().NotBeNull();
                actualNoun.Verbs.Keys.Should().Contain(expectedKvp.Value.Verbs.Keys);

                foreach (var expectedVerbKvp in expectedKvp.Value.Verbs)
                {
                    var actualVerb = actualNoun.Verbs[expectedVerbKvp.Key];

                    actualVerb.Options.Should().NotBeNull();
                    actualVerb.Options.Keys.Should().Contain(expectedVerbKvp.Value.Options.Keys);

                    foreach (var expectedOptionKvp in expectedVerbKvp.Value.Options)
                    {
                        var actualOption = actualVerb.Options[expectedOptionKvp.Key];

                        expectedOptionKvp.Value.Should().BeEquivalentTo(actualOption, options =>
                                                                        options.Excluding(option => option.PropertyInfo));
                    }
                }
            }
        }
        private static Dictionary <string, Noun> LoadRoutingMetadata()
        {
            var inputAssembly           = typeof(BaseRequest).Assembly;
            var routeAttributeReflector = new RouteAttributeReflector(SerilogFixture.UsefullLogger <RouteAttributeReflector>());
            var sut            = new RouteMetadataBuilder(SerilogFixture.UsefullLogger <RouteMetadataBuilder>(), routeAttributeReflector);
            var actualResponse = sut.GetMetadata(inputAssembly);

            return(actualResponse);
        }