blob: 500065304574825294d3c83d775e00660538f850 [file] [log] [blame]
// Copyright 2022 The Fuchsia 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 <lib/async-testing/dispatcher_stub.h>
#include <lib/async/sequence_id.h>
#include <zxtest/zxtest.h>
namespace {
class FakeSequenceIdAsync : public async::DispatcherStub {
public:
zx_status_t GetSequenceId(async_sequence_id_t* out_sequence_id) override {
*out_sequence_id = current_sequence_id_;
return ZX_OK;
}
void SetSequenceId(async_sequence_id_t current_sequence_id) {
current_sequence_id_ = current_sequence_id;
}
private:
async_sequence_id_t current_sequence_id_ = {};
};
TEST(SequenceIdTests, GetSequenceId) {
FakeSequenceIdAsync dispatcher;
dispatcher.SetSequenceId({.value = 0});
async_sequence_id_t sequence_id = {};
EXPECT_OK(async_get_sequence_id(&dispatcher, &sequence_id));
EXPECT_EQ(0, sequence_id.value);
dispatcher.SetSequenceId({.value = 42});
sequence_id = {};
EXPECT_OK(async_get_sequence_id(&dispatcher, &sequence_id));
EXPECT_EQ(42, sequence_id.value);
}
} // namespace