diff --git a/ClosedXML/Excel/XLWorkbook.cs b/ClosedXML/Excel/XLWorkbook.cs index 7645cc7..4a0507c 100644 --- a/ClosedXML/Excel/XLWorkbook.cs +++ b/ClosedXML/Excel/XLWorkbook.cs @@ -480,7 +480,7 @@ { var extension = Path.GetExtension(filePath); - if (extension == null) throw new ArgumentException("Empty extension is not supported."); + if (string.IsNullOrEmpty(extension)) throw new ArgumentException("Empty extension is not supported."); extension = extension.Substring(1).ToLowerInvariant(); switch (extension) diff --git a/ClosedXML_Tests/Excel/Saving/SavingTests.cs b/ClosedXML_Tests/Excel/Saving/SavingTests.cs index abf1f42..bd7b27e 100644 --- a/ClosedXML_Tests/Excel/Saving/SavingTests.cs +++ b/ClosedXML_Tests/Excel/Saving/SavingTests.cs @@ -146,7 +146,7 @@ } } } - + [Test] public void SaveCachedValueWhenFlagIsTrue() { @@ -370,6 +370,32 @@ } [Test] + public void SaveAsWithNoExtensionFails() + { + using (var tf = new TemporaryFile("FileWithNoExtension")) + using (var wb = new XLWorkbook()) + { + wb.Worksheets.Add("Sheet1"); + TestDelegate action = () => wb.SaveAs(tf.Path); + + Assert.Throws(action); + } + } + + [Test] + public void SaveAsWithUnsupportedExtensionFails() + { + using (var tf = new TemporaryFile("FileWithBadExtension.bad")) + using (var wb = new XLWorkbook()) + { + wb.Worksheets.Add("Sheet1"); + TestDelegate action = () => wb.SaveAs(tf.Path); + + Assert.Throws(action); + } + } + + [Test] public void SaveCellValueWithLeadingQuotationMarkCorrectly() { var quotedFormulaValue = "'=IF(TRUE, 1, 0)"; @@ -419,7 +445,7 @@ using (var wb = new XLWorkbook(ms)) { - foreach (var sheetName in new []{"Sheet1", "Sheet2"}) + foreach (var sheetName in new[] { "Sheet1", "Sheet2" }) { var ws = wb.Worksheet(sheetName); @@ -452,7 +478,7 @@ using (var wb = new XLWorkbook(ms)) { - foreach (var sheetName in new[] {"Sheet1", "Sheet2"}) + foreach (var sheetName in new[] { "Sheet1", "Sheet2" }) { var ws = wb.Worksheet(sheetName);