private static void DisplayPrompt(Dictionary <string, object> promptResults, TemplatePrompt prompt) { switch (prompt.PromptType) { case PromptType.Boolean: promptResults.Add( prompt.Id, Prompt.GetYesNo(prompt.Message, (bool)prompt.DefaultValue)); break; case PromptType.String: promptResults.Add( prompt.Id, Prompt.GetString( prompt.Message, (string)prompt.DefaultValue) ?? string.Empty); break; case PromptType.Int: promptResults.Add( prompt.Id, Prompt.GetInt(prompt.Message, (int)prompt.DefaultValue)); break; default: throw new ArgumentException( message: "No Handler For Prompt", paramName: nameof(prompt)); } }
public void GivenAnJsonStringWithValidBooleanProperties_AndAStringDefaultValueOfFalse_WhenGetPromptsFromStringIsCalled_ThenTheResultWillContainASingleValidBooleanPromptObject_WithDefaultValueSetToFalse() { //arrange const int expectedCount = 1; var expectedObject = new TemplatePrompt { PromptType = PromptType.Boolean, Id = "BooleanPromptId", Message = "Boolean Prompt Message", DefaultValue = false }; const string jsonString = @" [ { ""promptType"": ""Boolean"", ""id"": ""BooleanPromptId"", ""message"": ""Boolean Prompt Message"", ""defaultValue"": ""false"" } ]"; //act var result = PromptReader.GetPromptsFromString(jsonString); //assert AssertBooleanPromptEquality(expectedCount, expectedObject, result); }
public void GivenAnJsonStringWithValidIntProperties_AndAIntDefaultValueOfOne_WhenGetPromptsFromStringIsCalled_ThenTheResultWillContainASingleValidIntPromptObject_WithDefaultValueSetToOne() { //arrange const int expectedCount = 1; var expectedObject = new TemplatePrompt { PromptType = PromptType.Int, Id = "IntegerPromptId", Message = "Integer Prompt Message", DefaultValue = 1 }; const string jsonString = @" [ { ""promptType"": ""Int"", ""id"": ""IntegerPromptId"", ""message"": ""Integer Prompt Message"", ""defaultValue"": 1 } ]"; //act var result = PromptReader.GetPromptsFromString(jsonString); //assert AssertIntPromptEquality(expectedCount, expectedObject, result); }
public void GivenAnJsonStringWithValidStringProperties_AndAnIntDefaultValue_WhenGetPromptsFromStringIsCalled_ThenTheResultWillContainASingleStringPromptObject_WithTheIntDefaultValueSet() { //arrange const int expectedCount = 1; var expectedObject = new TemplatePrompt { PromptType = PromptType.String, Id = "StringPromptId", Message = "String Prompt Message", DefaultValue = "123" }; const string jsonString = @" [ { ""promptType"": ""String"", ""id"": ""StringPromptId"", ""message"": ""String Prompt Message"", ""defaultValue"": 123 } ]"; //act var result = PromptReader.GetPromptsFromString(jsonString); //assert AssertStringPromptEquality(expectedCount, expectedObject, result); }
private static void AssertIntPromptEquality(int expectedCount, TemplatePrompt expectedObject, IEnumerable <TemplatePrompt> result) { Assert.Equal(expectedCount, result.Count()); Assert.True(result.First().Id == expectedObject.Id); var resultObject = result.First(); Assert.Equal(expectedObject.Id, resultObject.Id); Assert.Equal(expectedObject.Message, resultObject.Message); Assert.Equal(expectedObject.DefaultValue, resultObject.DefaultValue); }
public async Task GivenAJsonStringWithAPromptWithAWhenArray_WhenGetPromptsFromFileIsCalled_ThenTheResultPromptWillHaveTheGivenWhenArray(object value, string jsonValue) { //arrange var expectedWhen = new PromptWhen { Id = "question", Is = value }; var expectedPrompt = new TemplatePrompt { Id = "BooleanPromptId", Message = "Boolean Prompt Message", DefaultValue = false, When = new List <PromptWhen> { expectedWhen } }; var jsonString = @" [ { ""promptType"": ""Boolean"", ""id"": ""BooleanPromptId"", ""message"": ""Boolean Prompt Message"", ""when"": [{ ""id"": ""question"", ""is"": " + jsonValue + @" }] } ]"; await File.WriteAllTextAsync(TempFile, jsonString).ConfigureAwait(false); //act var result = await PromptReader.GetPromptsFromFile(TempPath).ConfigureAwait(false); //assert Assert.Single(result); var actualPrompt = result.First(); Assert.Equal(expectedPrompt.When.Count, actualPrompt.When.Count); var actualWhen = actualPrompt.When[0]; Assert.Equal(expectedWhen.Id, actualWhen.Id); Assert.Equal(expectedWhen.Is, actualWhen.Is); }
public void GivenAJsonStringWithAPromptWithAWhenArray_WhenGetPromptsFromStringIsCalled_ThenTheResultPromptWillHaveTheGivenWhenArray() { //arrange var expectedWhen = new PromptWhen { Id = "question", Is = "123" }; var expectedPrompt = new TemplatePrompt { Id = "BooleanPromptId", Message = "Boolean Prompt Message", DefaultValue = false, When = new List <PromptWhen> { expectedWhen } }; const string jsonString = @" [ { ""promptType"": ""Boolean"", ""id"": ""BooleanPromptId"", ""message"": ""Boolean Prompt Message"", ""when"": [{ ""id"": ""question"", ""is"": ""123"" }] } ]"; //act var result = PromptReader.GetPromptsFromString(jsonString); //assert Assert.Single(result); var actualPrompt = result.First(); Assert.Equal(expectedPrompt.When.Count, actualPrompt.When.Count); var actualWhen = actualPrompt.When[0]; Assert.Equal(expectedWhen.Id, actualWhen.Id); Assert.Equal(expectedWhen.Is, actualWhen.Is); }