public void Should_Replace_EndColumn_Token()
            {
                // Given
                var ideIntegrationSettings =
                    new IdeIntegrationSettings
                {
                    OpenInIdeCall = "Foo{EndColumn}Bar",
                };
                var filePathExpression  = "file";
                var lineExpression      = "line";
                var endLineExpression   = "endLine";
                var columnExpression    = "column";
                var endColumnExpression = "endColumn";

                // When
                var result =
                    ideIntegrationSettings.GetOpenInIdeCall(
                        filePathExpression,
                        lineExpression,
                        endLineExpression,
                        columnExpression,
                        endColumnExpression);

                // Then
                result.ShouldBe("FooendColumnBar");
            }
            public void Should_Return_Null_If_OpenInIdeCall_Is_Not_Set()
            {
                // Given
                var ideIntegrationSettings = new IdeIntegrationSettings();
                var filePathExpression     = "file";
                var lineExpression         = "line";

                // When
                var result = ideIntegrationSettings.GetOpenInIdeCall(filePathExpression, lineExpression);

                // Then
                result.ShouldBeNull();
            }
            public void Should_Throw_If_LineExpression_Is_WhiteSpace()
            {
                // Given
                var ideIntegrationSettings = new IdeIntegrationSettings();
                var filePathExpression     = "file";
                var lineExpression         = " ";

                // When
                var result = Record.Exception(() =>
                                              ideIntegrationSettings.GetOpenInIdeCall(filePathExpression, lineExpression));

                // Then
                result.IsArgumentOutOfRangeException("lineExpression");
            }
            public void Should_Throw_If_LineExpression_Is_Null()
            {
                // Given
                var    ideIntegrationSettings = new IdeIntegrationSettings();
                var    filePathExpression     = "file";
                string lineExpression         = null;

                // When
                var result = Record.Exception(() =>
                                              ideIntegrationSettings.GetOpenInIdeCall(filePathExpression, lineExpression));

                // Then
                result.IsArgumentNullException("lineExpression");
            }
            public void Should_Replace_Line_Token()
            {
                // Given
                var ideIntegrationSettings =
                    new IdeIntegrationSettings
                {
                    OpenInIdeCall = "Foo{Line}Bar",
                };
                var filePathExpression = "file";
                var lineExpression     = "line";

                // When
                var result = ideIntegrationSettings.GetOpenInIdeCall(filePathExpression, lineExpression);

                // Then
                result.ShouldBe("FoolineBar");
            }
            public void Should_Throw_If_FilePathExpression_Is_Empty()
            {
                // Given
                var ideIntegrationSettings = new IdeIntegrationSettings();
                var filePathExpression     = string.Empty;
                var lineExpression         = "line";
                var endLineExpression      = "endLine";
                var columnExpression       = "column";
                var endColumnExpression    = "endColumn";

                // When
                var result = Record.Exception(() =>
                                              ideIntegrationSettings.GetOpenInIdeCall(
                                                  filePathExpression,
                                                  lineExpression,
                                                  endLineExpression,
                                                  columnExpression,
                                                  endColumnExpression));

                // Then
                result.IsArgumentOutOfRangeException("filePathExpression");
            }