blob: cf75f7b7ad705d9e075733d26a59404b42101beb [file] [log] [blame]
// Copyright 2018 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/time.h>
#include <lib/async-testutils/dispatcher_stub.h>
#include <unittest/unittest.h>
namespace {
class FakeClockAsync : public async::DispatcherStub {
public:
zx::time Now() override { return current_time_; }
void SetTime(zx::time t) { current_time_ = t; }
private:
zx::time current_time_;
};
bool time_telling_test() {
BEGIN_TEST;
FakeClockAsync dispatcher;
EXPECT_EQ(0u, dispatcher.Now().get());
EXPECT_EQ(0u, async_now(&dispatcher));
dispatcher.SetTime(zx::time(4u));
EXPECT_EQ(4u, dispatcher.Now().get());
EXPECT_EQ(4u, async_now(&dispatcher));
dispatcher.SetTime(zx::time(1853u));
EXPECT_EQ(1853u, dispatcher.Now().get());
EXPECT_EQ(1853u, async_now(&dispatcher));
END_TEST;
}
} // namespace
BEGIN_TEST_CASE(time_tests)
RUN_TEST(time_telling_test)
END_TEST_CASE(time_tests)