diff --git a/OSCADSharp/OSCADSharp.UnitTests/OSCADObjectTests.cs b/OSCADSharp/OSCADSharp.UnitTests/OSCADObjectTests.cs index de5cb5f..dc040e0 100644 --- a/OSCADSharp/OSCADSharp.UnitTests/OSCADObjectTests.cs +++ b/OSCADSharp/OSCADSharp.UnitTests/OSCADObjectTests.cs @@ -158,8 +158,8 @@ namespace OSCADSharp.UnitTests public void OSCADObject_ToFileIncludesGlobalVariablesDefinedInSettings() { var cube = new Cube(); - string[] output = null; Settings.Globals["$fn"] = 100; + string[] output = null; var mock = new Mock(); mock.Setup(_wrtr => _wrtr.WriteAllLines(It.IsAny(), It.IsAny())) @@ -167,8 +167,8 @@ namespace OSCADSharp.UnitTests Settings.FileWriter = mock.Object; cube.ToFile("myFile"); - - Assert.AreEqual("$fn = 100;\r\n", output[1]); + bool outputMatches = "$fn = 100;\r\n" == output[1]; + Assert.IsTrue(outputMatches); } } } diff --git a/OSCADSharp/OSCADSharp.UnitTests/OSCADSharp.UnitTests.csproj b/OSCADSharp/OSCADSharp.UnitTests/OSCADSharp.UnitTests.csproj index 83c374d..6cd12b4 100644 --- a/OSCADSharp/OSCADSharp.UnitTests/OSCADSharp.UnitTests.csproj +++ b/OSCADSharp/OSCADSharp.UnitTests/OSCADSharp.UnitTests.csproj @@ -56,6 +56,7 @@ + diff --git a/OSCADSharp/OSCADSharp.UnitTests/SettingsTests.cs b/OSCADSharp/OSCADSharp.UnitTests/SettingsTests.cs new file mode 100644 index 0000000..fc7f345 --- /dev/null +++ b/OSCADSharp/OSCADSharp.UnitTests/SettingsTests.cs @@ -0,0 +1,33 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; +using Moq; +using OSCADSharp.Scripting; +using OSCADSharp.Solids; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace OSCADSharp.UnitTests +{ + [TestClass] + public class SettingsTests + { + [TestMethod] + public void Settings_NullVariablesDoNothing() + { + var cube = new Cube(); + Settings.Globals["thing"] = null; + string[] output = null; + + var mock = new Mock(); + mock.Setup(_wrtr => _wrtr.WriteAllLines(It.IsAny(), It.IsAny())) + .Callback((path, contents) => { output = contents; }); + Settings.FileWriter = mock.Object; + + cube.ToFile("myFile"); + + Assert.AreEqual("", output[1]); + } + } +} diff --git a/OSCADSharp/OSCADSharp/Scripting/Variables.cs b/OSCADSharp/OSCADSharp/Scripting/Variables.cs index 1a47561..397aad9 100644 --- a/OSCADSharp/OSCADSharp/Scripting/Variables.cs +++ b/OSCADSharp/OSCADSharp/Scripting/Variables.cs @@ -54,6 +54,11 @@ namespace OSCADSharp.Scripting StringBuilder sb = new StringBuilder(); foreach (var kvp in this.variables) { + if(kvp.Value == null || String.IsNullOrEmpty(kvp.Value.ToString()) || String.IsNullOrEmpty(kvp.Key)) + { + continue; + } + sb.Append(kvp.Key); sb.Append(" = "); sb.Append(kvp.Value);