From 4279a9cca135f3efb1249802fe8fef004aecdf57 Mon Sep 17 00:00:00 2001 From: Jan Romann Date: Sat, 30 Dec 2023 13:58:47 +0100 Subject: [PATCH] test: add tests for InteractionOutput class --- test/core/interaction_output_test.dart | 59 ++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 test/core/interaction_output_test.dart diff --git a/test/core/interaction_output_test.dart b/test/core/interaction_output_test.dart new file mode 100644 index 00000000..e6f48668 --- /dev/null +++ b/test/core/interaction_output_test.dart @@ -0,0 +1,59 @@ +// Copyright 2023 Contributors to the Eclipse Foundation. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. +// +// SPDX-License-Identifier: BSD-3-Clause + +import 'dart:convert'; + +import 'package:dart_wot/src/core/content.dart'; +import 'package:dart_wot/src/core/content_serdes.dart'; +import 'package:dart_wot/src/core/interaction_output.dart'; +import 'package:test/test.dart'; + +void main() { + group('InteractionOutput should', () { + test('output the correct value', () async { + const inputValue = 'foo'; + final input = utf8.encode(inputValue); + + final contentSerdes = ContentSerdes(); + final content = Content( + 'text/plain', + Stream.fromIterable([ + input, + ]), + ); + + final interactionOutput = InteractionOutput(content, contentSerdes); + + final value1 = await interactionOutput.value(); + expect(value1, inputValue); + + // Should return the same value + final value2 = await interactionOutput.value(); + expect(value2, inputValue); + }); + + test('output the same value when calling value() twice', () async { + const inputValue = 'bar'; + final input = utf8.encode(inputValue); + + final contentSerdes = ContentSerdes(); + final content = Content( + 'text/plain', + Stream.fromIterable([ + input, + ]), + ); + + final interactionOutput = InteractionOutput(content, contentSerdes); + + final value1 = await interactionOutput.value(); + expect(value1, inputValue); + + final value2 = await interactionOutput.value(); + expect(value1, value2); + }); + }); +}