Пример #1
0
        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));
            }
        }
Пример #2
0
        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);
        }
Пример #4
0
        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);
        }