efl/src/tests/efl_mono/ValueEolian.cs

123 lines
3.2 KiB
C#

#define CODE_ANALYSIS
// Disable warning about missing docs when generating docs
#pragma warning disable 1591
using System;
namespace TestSuite {
public static class TestEinaValueEolian {
public static void TestEolianEinaValueInReturn()
{
var obj = new Dummy.TestObject();
using (Eina.Value v = new Eina.Value(Eina.ValueType.Int32)) {
v.Set(42);
obj.SetValuePtr(v);
Test.AssertEquals(Eina.Ownership.Managed, v.Ownership);
Eina.Value v_received = obj.GetValuePtrOwn();
Test.AssertEquals(Eina.Ownership.Managed, v_received.Ownership);
Test.AssertEquals(v, v_received);
v_received.Dispose();
}
}
public static void TestEolianEinaValueInOwn()
{
var obj = new Dummy.TestObject();
using (Eina.Value v = new Eina.Value(Eina.ValueType.Int32)) {
v.Set(2001);
Test.AssertEquals(Eina.Ownership.Managed, v.Ownership);
obj.SetValuePtrOwn(v);
Test.AssertEquals(Eina.Ownership.Unmanaged, v.Ownership);
Eina.Value v_received = obj.GetValuePtr();
Test.AssertEquals(Eina.Ownership.Unmanaged, v_received.Ownership);
Test.AssertEquals(v, v_received);
obj.ClearValue();
}
}
public static void TestEolianEinaValueOut()
{
var obj = new Dummy.TestObject();
using (Eina.Value v = new Eina.Value(Eina.ValueType.String)) {
Eina.Value v_out = null;
v.Set("hello!");
obj.SetValuePtr(v);
obj.OutValuePtr(out v_out);
Test.AssertEquals(v, v_out);
Test.AssertEquals(Eina.Ownership.Unmanaged, v_out.Ownership);
}
}
public static void TestEolianEinaValueOutOwn()
{
var obj = new Dummy.TestObject();
using (Eina.Value v = new Eina.Value(Eina.ValueType.String)) {
Eina.Value v_out = null;
v.Set("hello!");
obj.SetValuePtr(v);
obj.OutValuePtrOwn(out v_out);
Test.AssertEquals(v, v_out);
Test.AssertEquals(Eina.Ownership.Managed, v_out.Ownership);
}
}
public static void TestEolianEinaValueOutByValue()
{
var obj = new Dummy.TestObject();
using (Eina.Value v = new Eina.Value(Eina.ValueType.String)) {
Eina.Value v_out = null;
v.Set("hello!");
obj.SetValue(v);
obj.OutValue(out v_out);
Test.AssertEquals(v, v_out);
Test.AssertEquals(Eina.Ownership.Managed, v_out.Ownership);
}
}
private class ValueHandler : Dummy.TestObject
{
public Eina.Value value;
public ValueHandler() : base(null)
{
value = null;
}
public override void SetValue(Eina.Value value)
{
this.value = value;
}
}
public static void TestEolianEinaValueByValueConst()
{
ValueHandler obj = new ValueHandler();
using (Eina.Value val = new Eina.Value(Eina.ValueType.String)) {
obj.CallSetValue(val);
Test.AssertEquals(val, obj.value);
}
}
}
#pragma warning restore 1591
}