efl/src/tests/efl_mono/Strbuf.cs

60 lines
1.4 KiB
C#

using System;
namespace TestSuite {
class TestStrBuf
{
public static void test_steal()
{
Eina.Strbuf buf = new Eina.Strbuf();
buf.Append("Here's");
buf.Append(' ');
buf.Append("Johnny!");
Test.AssertEquals("Here's Jonnny!".Length, buf.Length);
Test.AssertEquals("Here's Johnny!", buf.Steal());
}
public static void test_eolian()
{
var obj = new Dummy.TestObject();
Eina.Strbuf buf = new Eina.Strbuf();
obj.AppendToStrbuf(buf, "Appended");
obj.AppendToStrbuf(buf, " to buf");
Test.AssertEquals("Appended to buf", buf.Steal());
}
private class Appender : Dummy.TestObject
{
public bool called;
public Appender() : base(null)
{
called = false;
}
public override void AppendToStrbuf(Eina.Strbuf buf, string str)
{
Eina.Log.Error("Virtual wrapper called");
called = true;
buf.Append(str);
}
}
public static void test_virtual_eolian()
{
Appender obj = new Appender();
Eina.Strbuf buf = new Eina.Strbuf();
obj.CallAppendToStrbuf(buf, "Is");
obj.CallAppendToStrbuf(buf, " this");
obj.CallAppendToStrbuf(buf, " virtual?");
Test.Assert(obj.called);
Test.AssertEquals("Is this virtual?", buf.Steal());
}
}
} // namespace TestSuite