Пример #1
0
        public void GetWebRequestDesignerViewModel_ExecutePreviewWhenUrlIsValidWithoutHttpPrefix_WebRequestIsInvoked()
        {
            var properties         = new Dictionary <string, Mock <ModelProperty> >();
            var propertyCollection = new Mock <ModelPropertyCollection>();

            var url = new Mock <ModelProperty>();

            url.SetupProperty(p => p.ComputedValue, "www.google.com"); // start "tracking" sets/gets to this property
            properties.Add("Url", url);
            propertyCollection.Protected().Setup <ModelProperty>("Find", "Url", true).Returns(url.Object);

            var modelItemMock = new Mock <ModelItem>();

            modelItemMock.Setup(s => s.Properties).Returns(propertyCollection.Object);

            var sut = new GetWebRequestWithTimeoutDesignerViewModel(modelItemMock.Object);

            sut.WebInvoke = (m, u, h) => { return("Was Called"); };

            sut.PreviewViewModel.PreviewCommand.Execute(null);

            Assert.IsFalse(string.IsNullOrWhiteSpace(sut.PreviewViewModel.Output));
            Assert.AreEqual(sut.PreviewViewModel.Output, "Was Called");
            Assert.IsNull(sut.Errors);
        }
Пример #2
0
        public void GetWebRequestDesignerViewModel_Validate_ValidString_IsValidTrue()
        {
            //------------Setup for test--------------------------
            var modelItem = GenerateMockModelItem("http://www.search.com?p=5");

            var viewModel = new GetWebRequestWithTimeoutDesignerViewModel(modelItem.Object);

            //------------Execute Test---------------------------
            viewModel.Validate();

            //------------Assert Results-------------------------
            Assert.IsTrue(viewModel.IsValid);
            Assert.IsNull(viewModel.Errors);
        }
Пример #3
0
        public void GetWebRequestDesignerViewModel_Validate_ValidExpression_IsValidTrue()
        {
            //------------Setup for test--------------------------
            var modelItem = GenerateMockModelItem("http://[[asdf]]?[[asdf]]");

            var viewModel = new GetWebRequestWithTimeoutDesignerViewModel(modelItem.Object);

            //------------Execute Test---------------------------
            viewModel.Validate();

            //------------Assert Results-------------------------
            Assert.IsTrue(viewModel.IsValid);
            Assert.IsNull(viewModel.Errors);
        }
Пример #4
0
        public void GetWebRequestDesignerViewModel_Validate_InvalidExpression_IsValidFalse()
        {
            //------------Setup for test--------------------------
            var modelItem = GenerateMockModelItem("[[asdf]asdf]]asdf]]");

            var viewModel = new GetWebRequestWithTimeoutDesignerViewModel(modelItem.Object);

            //------------Execute Test---------------------------
            viewModel.Validate();

            //------------Assert Results-------------------------
            Assert.IsFalse(viewModel.IsValid);
            Assert.AreEqual(1, viewModel.Errors.Count);
            Assert.AreEqual("Invalid expression: opening and closing brackets don't match.", viewModel.Errors[0].Message);
        }
Пример #5
0
        public void GetWebRequestDesignerViewModel_Constructor_PreviewViewModel_NotNull()
        {
            var properties         = new Dictionary <string, Mock <ModelProperty> >();
            var propertyCollection = new Mock <ModelPropertyCollection>();

            var url = new Mock <ModelProperty>();

            url.SetupProperty(p => p.ComputedValue, null);
            properties.Add("Url", url);
            propertyCollection.Protected().Setup <ModelProperty>("Find", "Url", true).Returns(url.Object);

            var modelItemMock = new Mock <ModelItem>();

            modelItemMock.Setup(s => s.Properties).Returns(propertyCollection.Object);

            var sut = new GetWebRequestWithTimeoutDesignerViewModel(modelItemMock.Object);

            Assert.IsNotNull(sut.PreviewViewModel);
        }
Пример #6
0
        public void GetWebRequestDesignerViewModel_ExecutePreviewWhenUrlIsNull_WebRequestIsNotInvoked()
        {
            var modelItem = GenerateMockModelItem(string.Empty);

            var sut = new GetWebRequestWithTimeoutDesignerViewModel(modelItem.Object);

            var isInvoked = false;

            sut.WebInvoke = (m, u, h) =>
            {
                isInvoked = true;
                return("Was Called");
            };

            sut.PreviewViewModel.PreviewCommand.Execute(null);

            Assert.IsTrue(string.IsNullOrWhiteSpace(sut.PreviewViewModel.Output));
            Assert.IsFalse(isInvoked);
            Assert.AreEqual(1, sut.Errors.Count);
        }
Пример #7
0
        public void GetWebRequestDesignerViewModel_SetUrl_EmptyString_CanPreviewIsFalse()
        {
            var properties         = new Dictionary <string, Mock <ModelProperty> >();
            var propertyCollection = new Mock <ModelPropertyCollection>();

            var url = new Mock <ModelProperty>();

            url.SetupProperty(p => p.ComputedValue, "xxxxx"); // start "tracking" sets/gets to this property
            properties.Add("Url", url);
            propertyCollection.Protected().Setup <ModelProperty>("Find", "Url", true).Returns(url.Object);

            var modelItemMock = new Mock <ModelItem>();

            modelItemMock.Setup(s => s.Properties).Returns(propertyCollection.Object);

            var sut = new GetWebRequestWithTimeoutDesignerViewModel(modelItemMock.Object);

            url.Object.ComputedValue = "";
            modelItemMock.Raise(mi => mi.PropertyChanged += null, new PropertyChangedEventArgs("Url"));

            Assert.IsFalse(sut.PreviewViewModel.CanPreview);
        }
Пример #8
0
        public void GetWebRequestDesignerViewModel_SetHeaders_StringWithOneVariables_PreviewInputsCountIsOne()
        {
            var properties         = new Dictionary <string, Mock <ModelProperty> >();
            var propertyCollection = new Mock <ModelPropertyCollection>();

            var headers = new Mock <ModelProperty>();

            headers.SetupProperty(p => p.ComputedValue, ""); // start "tracking" sets/gets to this property
            properties.Add("Headers", headers);
            propertyCollection.Protected().Setup <ModelProperty>("Find", "Headers", true).Returns(headers.Object);

            var modelItemMock = new Mock <ModelItem>();

            modelItemMock.Setup(s => s.Properties).Returns(propertyCollection.Object);

            var sut = new GetWebRequestWithTimeoutDesignerViewModel(modelItemMock.Object);

            headers.Object.ComputedValue = "ContentType=[[contenttype]]";
            modelItemMock.Raise(mi => mi.PropertyChanged += null, new PropertyChangedEventArgs("Headers"));

            Assert.IsTrue(sut.PreviewViewModel.Inputs.Count == 1);
            Assert.AreEqual(sut.PreviewViewModel.InputsVisibility, Visibility.Visible);
        }
Пример #9
0
        public void GetWebRequestDesignerViewModel_SetUrl_StringWithoutVariables_CanPreviewIsTrueButPreviewInputsCountIsZero()
        {
            var properties         = new Dictionary <string, Mock <ModelProperty> >();
            var propertyCollection = new Mock <ModelPropertyCollection>();

            var url = new Mock <ModelProperty>();

            url.SetupProperty(p => p.ComputedValue, ""); // start "tracking" sets/gets to this property
            properties.Add("Url", url);
            propertyCollection.Protected().Setup <ModelProperty>("Find", "Url", true).Returns(url.Object);

            var modelItemMock = new Mock <ModelItem>();

            modelItemMock.Setup(s => s.Properties).Returns(propertyCollection.Object);

            var sut = new GetWebRequestWithTimeoutDesignerViewModel(modelItemMock.Object);

            url.Object.ComputedValue = "http://www.google.com";
            modelItemMock.Raise(mi => mi.PropertyChanged += null, new PropertyChangedEventArgs("Url"));

            Assert.IsTrue(sut.PreviewViewModel.CanPreview);
            Assert.IsTrue(sut.PreviewViewModel.Inputs.Count == 0);
            Assert.AreEqual(sut.PreviewViewModel.InputsVisibility, Visibility.Collapsed);
        }