public void ToUri_WhenOneArgument_ReturnsCommandUriWithOneQueryParameter()
        {
            var command = new GallioNavigatorCommand("command", new NameValueCollection()
                {
                    { "arg/1", "value?1" }
                });

            Assert.AreEqual("gallio:command?arg%2F1=value%3F1", command.ToUri());
        }
        public void Execute_WhenCommandIsMalformed_ReturnsFalse(string url)
        {
            var navigator = MockRepository.GenerateMock <IGallioNavigator>();
            var command   = GallioNavigatorCommand.ParseUri(url);

            Assert.IsFalse(command.Execute(navigator), "Should have returned false for invalid command syntax.");

            navigator.VerifyAllExpectations();
        }
        public void ToUri_WhenOneArgument_ReturnsCommandUriWithOneQueryParameter()
        {
            var command = new GallioNavigatorCommand("command", new NameValueCollection()
            {
                { "arg/1", "value?1" }
            });

            Assert.AreEqual("gallio:command?arg%2F1=value%3F1", command.ToUri());
        }
        public void ToUri_WhenTwoArguments_ReturnsCommandUriWithTwoQueryParameters()
        {
            var command = new GallioNavigatorCommand("command", new NameValueCollection()
            {
                { "arg/1", "value?1" },
                { "arg/2", "value?2" }
            });

            Assert.AreEqual("gallio:command?arg%2F1=value%3F1&arg%2F2=value%3F2", command.ToUri());
        }
        public void ToUri_WhenTwoArguments_ReturnsCommandUriWithTwoQueryParameters()
        {
            var command = new GallioNavigatorCommand("command", new NameValueCollection()
                {
                    { "arg/1", "value?1" },
                    { "arg/2", "value?2" }
                });

            Assert.AreEqual("gallio:command?arg%2F1=value%3F1&arg%2F2=value%3F2", command.ToUri());
        }
        public void Execute_WhenCommandIsNavigateToAndWellFormed_PerformsNavigation(string url, string expectedPath, int expectedLineNumber, int expectedColumnNumber)
        {
            var navigator = MockRepository.GenerateMock <IGallioNavigator>();

            navigator.Expect(x => x.NavigateTo(expectedPath, expectedLineNumber, expectedColumnNumber)).Return(true);
            var command = GallioNavigatorCommand.ParseUri(url);

            Assert.IsTrue(command.Execute(navigator), "Should have returned true.");

            navigator.VerifyAllExpectations();
        }
        public void ToUri_WhenNoArguments_ReturnsCommandUriWithNoQueryParameters()
        {
            var command = new GallioNavigatorCommand("command", new NameValueCollection());

            Assert.AreEqual("gallio:command", command.ToUri());
        }
        public void ParseUri_WhenUriIsMalformed_ReturnsNull()
        {
            var command = GallioNavigatorCommand.ParseUri("\0");

            Assert.IsNull(command);
        }
        public void ParseUri_WhenProtocolIsInvalid_ReturnsNull()
        {
            var command = GallioNavigatorCommand.ParseUri("proto:foo");

            Assert.IsNull(command);
        }
 public void ParseUri_WhenArgumentIsNull_Throws()
 {
     Assert.Throws <ArgumentNullException>(() => GallioNavigatorCommand.ParseUri(null));
 }
        public void ToUri_WhenNoArguments_ReturnsCommandUriWithNoQueryParameters()
        {
            var command = new GallioNavigatorCommand("command", new NameValueCollection());

            Assert.AreEqual("gallio:command", command.ToUri());
        }