efl

Форк
0
/
Strbuf.cs 
90 строк · 2.4 Кб
1
/*
2
 * Copyright 2019 by its authors. See AUTHORS.
3
 *
4
 * Licensed under the Apache License, Version 2.0 (the "License");
5
 * you may not use this file except in compliance with the License.
6
 * You may obtain a copy of the License at
7
 *
8
 *     http://www.apache.org/licenses/LICENSE-2.0
9
 *
10
 * Unless required by applicable law or agreed to in writing, software
11
 * distributed under the License is distributed on an "AS IS" BASIS,
12
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
 * See the License for the specific language governing permissions and
14
 * limitations under the License.
15
 */
16
using System;
17

18
namespace TestSuite {
19

20
class TestStrBuf
21
{
22
    public static void test_steal()
23
    {
24
        Eina.Strbuf buf = new Eina.Strbuf();
25

26
        buf.Append("Here's");
27
        buf.Append(' ');
28
        buf.Append("Johnny!");
29

30
        Test.AssertEquals("Here's Jonnny!".Length, buf.Length);
31
        Test.AssertEquals("Here's Johnny!", buf.Steal());
32
        buf.Dispose();
33
    }
34

35
    public static void test_tostring()
36
    {
37
        Eina.Strbuf buf = new Eina.Strbuf();
38
        buf.Append("Hello");
39
        buf.Append(' ');
40
        buf.Append("World!");
41

42
        Test.AssertEquals("Hello World!", buf.ToString());
43
        buf.Dispose();
44
    }
45

46
    public static void test_eolian()
47
    {
48
        var obj = new Dummy.TestObject();
49
        Eina.Strbuf buf = new Eina.Strbuf();
50

51
        obj.AppendToStrbuf(buf, "Appended");
52
        obj.AppendToStrbuf(buf, " to buf");
53

54
        Test.AssertEquals("Appended to buf", buf.Steal());
55
        buf.Dispose();
56
        obj.Dispose();
57
    }
58

59
    private class Appender : Dummy.TestObject
60
    {
61
        public bool called;
62
        public Appender() : base(null)
63
        {
64
            called = false;
65
        }
66

67
        public override void AppendToStrbuf(Eina.Strbuf buf, string str)
68
        {
69
            Eina.Log.Error("Virtual wrapper called");
70
            called = true;
71
            buf.Append(str);
72
        }
73
    }
74

75
    public static void test_virtual_eolian()
76
    {
77
        Appender obj = new Appender();
78
        Eina.Strbuf buf = new Eina.Strbuf();
79

80
        obj.CallAppendToStrbuf(buf, "Is");
81
        obj.CallAppendToStrbuf(buf, " this");
82
        obj.CallAppendToStrbuf(buf, " virtual?");
83

84
        Test.Assert(obj.called);
85
        Test.AssertEquals("Is this virtual?", buf.Steal());
86
        buf.Dispose();
87
        obj.Dispose();
88
    }
89
}
90
} // namespace TestSuite
91

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.