-
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
// Copyright 2025 Shota FUJI
//
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
//
// SPDX-License-Identifier: MPL-2.0
using GLib;
namespace TimeTracker.Storage.Tests {
public void add_local_envelope_tests() {
Test.add_func("/local-envelope/serialize-and-deserialize", () => {
try {
var event = new Event.TimerStarted("Foo");
var envelope = new LocalEnvelope(event);
var output = new MemoryOutputStream.resizable();
envelope.write_stream(output);
output.close();
var written = output.steal_data();
written.length = (int) output.get_data_size();
var input = new MemoryInputStream.from_data(written);
var restored = LocalEnvelope.new_from_stream(input);
assert(envelope.event_type == restored.event_type);
var restored_event = restored.parse_event() as Event.TimerStarted;
assert((restored_event is Event.TimerStarted));
assert_cmpstr(restored_event.title, EQ, "Foo");
} catch (Error error) {
assert_no_error(error);
}
});
}
}