public void TestBasicArgumentsRequired() { TestResourceBuilder builder = new TestResourceBuilder("TestNs", "ResXClass"); builder.Add("TestException", "(Test Exception:{0})"); TestResourceResult result = builder.Compile(); result.CreateException("TestException"); }
public void TestBasicTypeArgumentOverloads() { Exception e; TestResourceBuilder builder = new TestResourceBuilder("TestNs", "ResXClass"); builder.Add("TestException", "(Test)"); builder.Add("TestException(string message)", "(Test:{0})"); builder.Add("TestException(double value)", "(Test:{0:n2})"); TestResourceResult result = builder.Compile(); e = result.CreateException("TestException"); Assert.AreEqual("(Test)", e.Message); e = result.CreateException("TestException", "Message"); Assert.AreEqual("(Test:Message)", e.Message); e = result.CreateException("TestException", 1.2); Assert.AreEqual("(Test:1.20)", e.Message); }
public void TestBasicTypeArgumentsInName() { TestResourceBuilder builder = new TestResourceBuilder("TestNs", "ResXClass"); builder.Add("TestException(string message)", "(Test:{0})"); TestResourceResult result = builder.Compile(); Exception e = result.CreateException("TestException", "Message"); Assert.AreEqual("(Test:Message)", e.Message); }
public void TestBasicException() { TestResourceBuilder builder = new TestResourceBuilder("TestNs", "ResXClass"); builder.Add("TestException", "TestValue"); TestResourceResult result = builder.Compile(); Exception e = result.CreateException("TestException"); Assert.AreEqual("TestValue", e.Message); }
public void TestMemberNotExposed() { TestResourceBuilder builder = new TestResourceBuilder("TestNs", "ResXClass"); builder.Add("TestException(int extraData)", "(Test:{0})"); TestResourceResult result = builder.Compile(); Exception e = result.CreateException("TestException", 42); Assert.IsNull(e.GetType().GetProperty("extradata", BindingFlags.Public | BindingFlags.GetProperty | BindingFlags.Instance | BindingFlags.IgnoreCase)); }
public void TestWithInnerException() { TestResourceBuilder builder = new TestResourceBuilder("TestNs", "ResXClass"); builder.Add("TestException()", "(Test)"); TestResourceResult result = builder.Compile(); Exception inner = new Exception("My inner exception"); Exception e = result.CreateException("TestException", inner); Assert.AreEqual(inner, e.InnerException); }
public void TestDerivedException() { TestResourceBuilder builder = new TestResourceBuilder("TestNs", "ResXClass"); builder.Add("BaseException", "{0}"); builder.Add("TestException(string message)", "(Test:{0})", ": BaseException"); TestResourceResult result = builder.Compile(); Exception e = result.CreateException("TestException", "Message"); Assert.AreEqual("TestNs.BaseException", e.GetType().BaseType.FullName); Assert.AreEqual("(Test:Message)", e.Message); }
public void TestDerivedExceptionWithInterface() { TestResourceBuilder builder = new TestResourceBuilder("TestNs", "ResXClass"); //The parameter starting with a capital 'E'xtraData denotes that this should be stored and a property accessor exposted. builder.Add("TestException(int ExtraData)", "(Test:{0})", ": ApplicationException, CSharpTest.Net.Generators.Test.IHaveExtraData<int>"); TestResourceResult result = builder.Compile(); Exception e = result.CreateException("TestException", 42); Assert.AreEqual(typeof(ApplicationException), e.GetType().BaseType); Assert.IsTrue(e is IHaveExtraData <int>, "Interface not found: IHaveExtraData<int>"); Assert.AreEqual("(Test:42)", e.Message); Assert.AreEqual(42, ((IHaveExtraData <int>)e).ExtraData); }