public void GetSampleRequests_Empty() { HelpPageSampleGenerator sampleGenerator = new HelpPageSampleGenerator(); ApiDescription apiDescription = ApiDescriptionHelpers.GetApiDescription(null, "Values", "Get"); IDictionary<MediaTypeHeaderValue, object> samples = sampleGenerator.GetSampleRequests(apiDescription); Assert.Empty(samples); }
public void GetSampleRequests_FromSampleObjects() { HelpPageSampleGenerator sampleGenerator = new HelpPageSampleGenerator(); sampleGenerator.SampleObjects.Add(typeof(string), "sample value"); ApiDescription apiDescription = ApiDescriptionHelpers.GetApiDescription(null, "Values", "Post", "value"); IDictionary<MediaTypeHeaderValue, object> samples = sampleGenerator.GetSampleRequests(apiDescription); Assert.NotEmpty(samples); foreach (var samplePair in samples) { Assert.Contains("sample value", ((TextSample)samplePair.Value).Text); } }
public void GetSampleRequests_FromSampleObjects_AndSettingActualRequestTypes() { HelpPageSampleGenerator sampleGenerator = new HelpPageSampleGenerator(); sampleGenerator.ActualHttpMessageTypes.Add(new HelpPageSampleKey(SampleDirection.Request, "values", "options", new[] { "request" }), typeof(string)); sampleGenerator.SampleObjects.Add(typeof(string), "sample value"); ApiDescription apiDescription = ApiDescriptionHelpers.GetApiDescription(null, "values", "options", "request"); IDictionary<MediaTypeHeaderValue, object> samples = sampleGenerator.GetSampleRequests(apiDescription); Assert.NotEmpty(samples); foreach (var samplePair in samples) { Assert.Contains("sample value", ((TextSample)samplePair.Value).Text); } }
public void GetSampleRequests_FromActionSamples_BasedOnMediaTypeAndType() { HelpPageSampleGenerator sampleGenerator = new HelpPageSampleGenerator(); var sample = new TextSample("test"); sampleGenerator.ActionSamples.Add(new HelpPageSampleKey(new MediaTypeHeaderValue("application/json"), typeof(Tuple<int, string>)), sample); ApiDescription apiDescription = ApiDescriptionHelpers.GetApiDescription(null, "Values", "Patch", "valuePair"); IDictionary<MediaTypeHeaderValue, object> samples = sampleGenerator.GetSampleRequests(apiDescription); Assert.NotEmpty(samples); object result; samples.TryGetValue(new MediaTypeHeaderValue("application/json"), out result); Assert.Same(sample, result); samples.TryGetValue(new MediaTypeHeaderValue("application/xml"), out result); Assert.NotSame(sample, result); }
public void GetSampleRequests_FromActionSamples_BasedOnMediaTypeAndNames() { HelpPageSampleGenerator sampleGenerator = new HelpPageSampleGenerator(); var sample = new TextSample("test"); sampleGenerator.ActionSamples.Add(new HelpPageSampleKey(new MediaTypeHeaderValue("application/xml"), SampleDirection.Request, "Values", "Put", new[] { "valuePairCollection" }), sample); ApiDescription apiDescription = ApiDescriptionHelpers.GetApiDescription(null, "Values", "Put", "valuePairCollection"); IDictionary<MediaTypeHeaderValue, object> samples = sampleGenerator.GetSampleRequests(apiDescription); Assert.NotEmpty(samples); object result; samples.TryGetValue(new MediaTypeHeaderValue("application/xml"), out result); Assert.Same(sample, result); samples.TryGetValue(new MediaTypeHeaderValue("application/json"), out result); Assert.NotSame(sample, result); }
public void GetSampleRequests_FromActionSamples_WhenTheParameterIsHttpRequestMessage() { HelpPageSampleGenerator sampleGenerator = new HelpPageSampleGenerator(); var sample = new TextSample("test"); sampleGenerator.ActionSamples.Add(new HelpPageSampleKey(new MediaTypeHeaderValue("plain/text"), SampleDirection.Request, "Values", "Options", new[] { "request" }), sample); ApiDescription apiDescription = ApiDescriptionHelpers.GetApiDescription(null, "Values", "Options", "request"); IDictionary<MediaTypeHeaderValue, object> samples = sampleGenerator.GetSampleRequests(apiDescription); Assert.NotEmpty(samples); object result; samples.TryGetValue(new MediaTypeHeaderValue("plain/text"), out result); Assert.Same(sample, result); samples.TryGetValue(new MediaTypeHeaderValue("application/json"), out result); Assert.Null(result); }
private static void GenerateSamples(HelpPageApiModel apiModel, HelpPageSampleGenerator sampleGenerator) { try { foreach (var item in sampleGenerator.GetSampleRequests(apiModel.ApiDescription)) { apiModel.SampleRequests.Add(item.Key, item.Value); LogInvalidSampleAsError(apiModel, item.Value); } foreach (var item in sampleGenerator.GetSampleResponses(apiModel.ApiDescription)) { apiModel.SampleResponses.Add(item.Key, item.Value); LogInvalidSampleAsError(apiModel, item.Value); } } catch (Exception e) { apiModel.ErrorMessages.Add(String.Format(CultureInfo.CurrentCulture, "An exception has occurred while generating the sample. Exception message: {0}", HelpPageSampleGenerator.UnwrapException(e).Message)); } }
private static HelpPageApiModel GenerateApiModel(ApiDescription apiDescription, HelpPageSampleGenerator sampleGenerator) { HelpPageApiModel apiModel = new HelpPageApiModel(); apiModel.ApiDescription = apiDescription; try { foreach (var item in sampleGenerator.GetSampleRequests(apiDescription)) { apiModel.SampleRequests.Add(item.Key, item.Value); LogInvalidSampleAsError(apiModel, item.Value); } foreach (var item in sampleGenerator.GetSampleResponses(apiDescription)) { apiModel.SampleResponses.Add(item.Key, item.Value); LogInvalidSampleAsError(apiModel, item.Value); } } catch (Exception e) { apiModel.ErrorMessages.Add(String.Format(CultureInfo.CurrentCulture, "An exception has occurred while generating the sample. Exception Message: {0}", e.Message)); } return apiModel; }