public void RuleDefinitionException_SerializedDeserialized_Equals() { //Arrange var exception = new RuleDefinitionException("Test message", typeof(Rule), new Exception("Inner exception")); //Act var newException = SerializeDeserialize(exception); //Assert Assert.NotNull(newException); Assert.NotSame(exception, newException); Assert.Equal(exception.Message, newException.Message); Assert.Equal(exception.RuleType, newException.RuleType); Assert.Equal(exception.InnerException.Message, newException.InnerException.Message); }
private static void Compile(CodeDom.CodeDomProvider provider, string source) { var param = new CodeDom.CompilerParameters() { GenerateExecutable = false, IncludeDebugInformation = false, GenerateInMemory = true }; var path = System.Reflection.Assembly.GetExecutingAssembly().Location; var root_Dir = System.IO.Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, "Bin"); param.ReferencedAssemblies.Add(path); // Note: This dependencies list are included as assembly reference and they should list out all dependencies // That you may reference in your Rules or that your entity depends on. // some assembly names were changed... clearly. var dependencies = new string[] { "yyyyyy.dll", "xxxxxx.dll", "NHibernate.dll", "ABC.Helper.Rules.dll" }; foreach (var dependency in dependencies) { var assemblypath = System.IO.Path.Combine(root_Dir, dependency); param.ReferencedAssemblies.Add(assemblypath); } // reference .NET basics for C# 2.0 and C#3.0 param.ReferencedAssemblies.Add(@"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dll"); param.ReferencedAssemblies.Add(@"C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.5\System.Core.dll"); var compileResults = provider.CompileAssemblyFromSource(param, source); var output = compileResults.Output; if (compileResults.Errors.Count != 0) { CodeDom.CompilerErrorCollection es = compileResults.Errors; var edList = new List <DataRuleLoadExceptionDetails>(); foreach (CodeDom.CompilerError s in es) { edList.Add(new DataRuleLoadExceptionDetails() { Message = s.ErrorText, LineNumber = s.Line }); } var rde = new RuleDefinitionException(source, edList.ToArray()); throw rde; } }