summaryrefslogtreecommitdiffstats
path: root/third_party/rust/uniffi-example-todolist/tests/bindings/test_todolist.rb
blob: d9e04f92e7b79eb1cee3d38ddbb158a9ca51be45 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# frozen_string_literal: true

require 'test/unit'
require 'todolist'

include Test::Unit::Assertions
include Todolist

todo = TodoList.new
entry = TodoEntry.new 'Write bindings for strings in records'

todo.add_item('Write ruby bindings')

assert_equal todo.get_last, 'Write ruby bindings'

todo.add_item('Write tests for bindings')

assert_equal todo.get_last, 'Write tests for bindings'

todo.add_entry(entry)

assert_equal todo.get_last, 'Write bindings for strings in records'
assert_equal todo.get_last_entry.text, 'Write bindings for strings in records'

todo.add_item("Test Ünicode hàndling without an entry can't believe I didn't test this at first 🤣")
assert_equal todo.get_last, "Test Ünicode hàndling without an entry can't believe I didn't test this at first 🤣"

entry2 = TodoEntry.new("Test Ünicode hàndling in an entry can't believe I didn't test this at first 🤣")
todo.add_entry(entry2)
assert_equal todo.get_last_entry.text, "Test Ünicode hàndling in an entry can't believe I didn't test this at first 🤣"

todo2 = TodoList.new
assert todo2.get_items != todo.get_items

assert Todolist.get_default_list == nil

Todolist.set_default_list todo
assert todo.get_items == Todolist.get_default_list.get_items

todo2.make_default
assert todo2.get_items == Todolist.get_default_list.get_items

todo.add_item "Test liveness after being demoted from default"
assert todo.get_last == "Test liveness after being demoted from default"

todo2.add_item "Test shared state through local vs default reference"
assert Todolist.get_default_list.get_last == "Test shared state through local vs default reference"