blob: fc48a81f2f9536f91791ae5b29806fe982e03f14 [file] [log] [blame]
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include <gtest/gtest.h>
#include "pigeon/multiple_arity.gen.h"
#include "test/utils/fake_host_messenger.h"
namespace multiple_arity_pigeontest {
namespace {
using flutter::EncodableList;
using flutter::EncodableMap;
using flutter::EncodableValue;
using testing::FakeHostMessenger;
class TestHostApi : public MultipleArityHostApi {
public:
TestHostApi() {}
virtual ~TestHostApi() {}
protected:
ErrorOr<int64_t> Subtract(int64_t x, int64_t y) override { return x - y; }
};
const EncodableValue& GetResult(const EncodableValue& pigeon_response) {
return std::get<EncodableList>(pigeon_response)[0];
}
} // namespace
TEST(MultipleArity, HostSimple) {
FakeHostMessenger messenger(&MultipleArityHostApi::GetCodec());
TestHostApi api;
MultipleArityHostApi::SetUp(&messenger, &api);
int64_t result = 0;
messenger.SendHostMessage("dev.flutter.pigeon.MultipleArityHostApi.subtract",
EncodableValue(EncodableList({
EncodableValue(30),
EncodableValue(10),
})),
[&result](const EncodableValue& reply) {
result = GetResult(reply).LongValue();
});
EXPECT_EQ(result, 20);
}
// TODO(stuartmorgan): Add a FlutterApi version of the test.
} // namespace multiple_arity_pigeontest