118 строки
4.5 KiB
C#
118 строки
4.5 KiB
C#
using System;
|
|
|
|
using NUnit.Framework;
|
|
|
|
using Xamarin.Bundler;
|
|
|
|
#if MONOTOUCH
|
|
using ProductException = Xamarin.Bundler.MonoTouchException;
|
|
#else
|
|
using ProductException = Xamarin.Bundler.MonoMacException;
|
|
#endif
|
|
|
|
namespace Xamarin.Test.Bundler {
|
|
|
|
[TestFixture]
|
|
public class ErrorTest {
|
|
|
|
[Test]
|
|
public void Ctor2 ()
|
|
{
|
|
var e = new ProductException (0, "valid");
|
|
Assert.That (e.ToString (), Is.EqualTo ($"warning {ProductException.Prefix}0000: valid"), "ToString-1");
|
|
|
|
e = new ProductException (9999, "valid") {
|
|
FileName = "here.cs",
|
|
LineNumber = 42
|
|
};
|
|
Assert.That (e.ToString (), Is.EqualTo ($"here.cs(42): warning {ProductException.Prefix}9999: valid"), "ToString-2");
|
|
}
|
|
|
|
[Test]
|
|
public void Ctor3 ()
|
|
{
|
|
var e = new ProductException (0, "valid", new string [] { });
|
|
Assert.That (e.ToString (), Is.EqualTo ($"warning {ProductException.Prefix}0000: valid"), "ToString-1");
|
|
|
|
e = new ProductException (10, "valid {0}", "output");
|
|
Assert.That (e.ToString (), Is.EqualTo ($"warning {ProductException.Prefix}0010: valid output"), "ToString-2");
|
|
|
|
e = new ProductException (9999, "valid", new string [] { }) {
|
|
FileName = "here.cs",
|
|
LineNumber = 42
|
|
};
|
|
Assert.That (e.ToString (), Is.EqualTo ($"here.cs(42): warning {ProductException.Prefix}9999: valid"), "ToString-3");
|
|
|
|
e = new ProductException (9999, "valid {0}", 1) {
|
|
FileName = "there.cs",
|
|
LineNumber = 911
|
|
};
|
|
Assert.That (e.ToString (), Is.EqualTo ($"there.cs(911): warning {ProductException.Prefix}9999: valid 1"), "ToString-4");
|
|
}
|
|
|
|
[Test]
|
|
public void Ctor4 ()
|
|
{
|
|
var e = new ProductException (0, true, "valid", new string [] { });
|
|
Assert.That (e.ToString (), Is.EqualTo ($"error {ProductException.Prefix}0000: valid"), "ToString-1");
|
|
|
|
e = new ProductException (10, true, "valid {0}", "output");
|
|
Assert.That (e.ToString (), Is.EqualTo ($"error {ProductException.Prefix}0010: valid output"), "ToString-2");
|
|
|
|
e = new ProductException (9999, true, "valid", new string [] { }) {
|
|
FileName = "here.cs",
|
|
LineNumber = 42
|
|
};
|
|
Assert.That (e.ToString (), Is.EqualTo ($"here.cs(42): error {ProductException.Prefix}9999: valid"), "ToString-32");
|
|
|
|
e = new ProductException (9999, true, "valid {0}", 1) {
|
|
FileName = "there.cs",
|
|
LineNumber = 911
|
|
};
|
|
Assert.That (e.ToString (), Is.EqualTo ($"there.cs(911): error {ProductException.Prefix}9999: valid 1"), "ToString-4");
|
|
}
|
|
|
|
[Test]
|
|
public void Ctor5 ()
|
|
{
|
|
var e = new ProductException (0, true, null, "valid", new string [] { });
|
|
Assert.That (e.ToString (), Is.EqualTo ($"error {ProductException.Prefix}0000: valid"), "ToString-1");
|
|
|
|
e = new ProductException (10, true, new Exception ("uho"), "valid {0}", "output");
|
|
Assert.That (e.ToString (), Is.EqualTo ($"error {ProductException.Prefix}0010: valid output"), "ToString-2");
|
|
|
|
e = new ProductException (9999, true, new NotFiniteNumberException (), "valid", new string [] { }) {
|
|
FileName = "here.cs",
|
|
LineNumber = 42
|
|
};
|
|
Assert.That (e.ToString (), Is.EqualTo ($"here.cs(42): error {ProductException.Prefix}9999: valid"), "ToString-32");
|
|
|
|
e = new ProductException (9999, true, new ObjectDisposedException ("uho"), "valid {0}", 1) {
|
|
FileName = "there.cs",
|
|
LineNumber = 911
|
|
};
|
|
Assert.That (e.ToString (), Is.EqualTo ($"there.cs(911): error {ProductException.Prefix}9999: valid 1"), "ToString-4");
|
|
}
|
|
|
|
[Test]
|
|
public void BadFormats ()
|
|
{
|
|
// {0} without argument - not using the `args` overload -> no exception
|
|
var e = new ProductException (0, true, null, "valid {0}");
|
|
Assert.That (e.ToString (), Is.EqualTo ($"error {ProductException.Prefix}0000: valid {{0}}"), "ToString-0");
|
|
|
|
// {0} without argument
|
|
e = new ProductException (0, true, null, "invalid {0}", null);
|
|
Assert.That (e.ToString (), Is.EqualTo ($"error {ProductException.Prefix}0000: invalid {{0}}. String.Format failed! Arguments were:. Please file an issue to report this incorrect error handling."), "ToString-1");
|
|
|
|
// {0} with 2 arguments -> no exception
|
|
e = new ProductException (10, "valid {0}", 1, 2);
|
|
Assert.That (e.ToString (), Is.EqualTo ($"warning {ProductException.Prefix}0010: valid 1"), "ToString-2");
|
|
|
|
// {0} {1} with 1 argument
|
|
e = new ProductException (10, true, new Exception ("uho"), "invalid {0} {1}", 1);
|
|
Assert.That (e.ToString (), Is.EqualTo ($"error {ProductException.Prefix}0010: invalid {{0}} {{1}}. String.Format failed! Arguments were: \"1\". Please file an issue to report this incorrect error handling."), "ToString-3");
|
|
}
|
|
}
|
|
}
|