public void CheckNonEqual() { string left = ExampleHelper.GetTempFilePath("left.xlsx"); string right = ExampleHelper.GetTempFilePath("right.xlsx"); try { new BasicTable().Create(left); new HelloWorld().Create(right); string message; Assert.IsFalse(ExcelDocsComparer.Compare(left, right, out message)); } finally { if (File.Exists(left)) { File.Delete(left); } if (File.Exists(right)) { File.Delete(right); } } }
public static void RunTestExample <T>(string filePartName) where T : IXLExample, new() { // Make sure tests run on a deterministic culture Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US"); var example = new T(); string[] pathParts = filePartName.Split(new char[] { '\\' }); string filePath1 = Path.Combine(new List <string>() { TestsExampleOutputDirectory }.Concat(pathParts).ToArray()); var extension = Path.GetExtension(filePath1); var directory = Path.GetDirectoryName(filePath1); var fileName = Path.GetFileNameWithoutExtension(filePath1); fileName += ActualTestResultPostFix; fileName = Path.ChangeExtension(fileName, extension); filePath1 = Path.Combine(directory, "z" + fileName); var filePath2 = Path.Combine(directory, fileName); //Run test example.Create(filePath1); new XLWorkbook(filePath1).SaveAs(filePath2, true); bool success = true; #pragma warning disable 162 try { //Compare // ReSharper disable ConditionIsAlwaysTrueOrFalse if (CompareWithResources) // ReSharper restore ConditionIsAlwaysTrueOrFalse { string resourcePath = filePartName.Replace('\\', '.').TrimStart('.'); using (var streamExpected = _extractor.ReadFileFromResToStream(resourcePath)) using (var streamActual = File.OpenRead(filePath2)) { string message; success = ExcelDocsComparer.Compare(streamActual, streamExpected, TestHelper.IsRunningOnUnix, out message); var formattedMessage = String.Format( "Actual file '{0}' is different than the expected file '{1}'. The difference is: '{2}'", filePath2, resourcePath, message); Assert.IsTrue(success, formattedMessage); } } } finally { //if (success && File.Exists(filePath)) File.Delete(filePath); } #pragma warning restore 162 }
public static void RunTestExample <T>(string filePartName, bool evaluateFormulae = false) where T : IXLExample, new() { // Make sure tests run on a deterministic culture Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US"); var example = new T(); string[] pathParts = filePartName.Split(new char[] { '\\' }); string filePath1 = Path.Combine(new List <string>() { ExampleTestsOutputDirectory }.Concat(pathParts).ToArray()); var extension = Path.GetExtension(filePath1); var directory = Path.GetDirectoryName(filePath1); var fileName = Path.GetFileNameWithoutExtension(filePath1); fileName += ActualTestResultPostFix; fileName = Path.ChangeExtension(fileName, extension); filePath1 = Path.Combine(directory, "z" + fileName); var filePath2 = Path.Combine(directory, fileName); //Run test example.Create(filePath1); using (var wb = new XLWorkbook(filePath1)) wb.SaveAs(filePath2, validate: true, evaluateFormulae); // Also load from template and save it again - but not necessary to test against reference file // We're just testing that it can save. using (var ms = new MemoryStream()) using (var wb = XLWorkbook.OpenFromTemplate(filePath1)) wb.SaveAs(ms, validate: true, evaluateFormulae); if (CompareWithResources) { string resourcePath = "Examples." + filePartName.Replace('\\', '.').TrimStart('.'); using (var streamExpected = _extractor.ReadFileFromResourceToStream(resourcePath)) using (var streamActual = File.OpenRead(filePath2)) { var success = ExcelDocsComparer.Compare(streamActual, streamExpected, out string message); var formattedMessage = String.Format( "Actual file '{0}' is different than the expected file '{1}'. The difference is: '{2}'", filePath2, resourcePath, message); Assert.IsTrue(success, formattedMessage); } } }
public static void CreateAndCompare(Func <IXLWorkbook> workbookGenerator, string referenceResource, bool evaluateFormulae = false) { Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US"); string[] pathParts = referenceResource.Split(new char[] { '\\' }); string filePath1 = Path.Combine(new List <string>() { OtherTestsOutputDirectory }.Concat(pathParts).ToArray()); var extension = Path.GetExtension(filePath1); var directory = Path.GetDirectoryName(filePath1); var fileName = Path.GetFileNameWithoutExtension(filePath1); fileName += ActualTestResultPostFix; fileName = Path.ChangeExtension(fileName, extension); var filePath2 = Path.Combine(directory, fileName); using (var wb = workbookGenerator.Invoke()) wb.SaveAs(filePath2, true, evaluateFormulae); if (CompareWithResources) { string resourcePath = referenceResource.Replace('\\', '.').TrimStart('.'); using (var streamExpected = _extractor.ReadFileFromResToStream(resourcePath)) using (var streamActual = File.OpenRead(filePath2)) { string message; var success = ExcelDocsComparer.Compare(streamActual, streamExpected, out message); var formattedMessage = String.Format( "Actual file '{0}' is different than the expected file '{1}'. The difference is: '{2}'", filePath2, resourcePath, message); Assert.IsTrue(success, formattedMessage); } } }