40 lines
1.5 KiB
C++
40 lines
1.5 KiB
C++
// Copyright (2019-2023) Paul Scherrer Institute
|
|
|
|
#include <thread>
|
|
#include <catch2/catch_all.hpp>
|
|
#include "../preview/PreviewCounter.h"
|
|
|
|
TEST_CASE("PreviewCount", "") {
|
|
PreviewCounter counter(std::chrono::seconds(1));
|
|
|
|
REQUIRE(counter.GeneratePreview()); // at first run it should generate preview
|
|
REQUIRE(!counter.GeneratePreview()); // immediately after not
|
|
std::this_thread::sleep_for(std::chrono::seconds(1));
|
|
REQUIRE(counter.GeneratePreview());
|
|
REQUIRE(!counter.GeneratePreview()); // immediately after not
|
|
REQUIRE(!counter.GeneratePreview()); // immediately after not
|
|
REQUIRE(!counter.GeneratePreview()); // immediately after not
|
|
std::this_thread::sleep_for(std::chrono::seconds(1));
|
|
REQUIRE(counter.GeneratePreview());
|
|
REQUIRE(!counter.GeneratePreview()); // immediately after not
|
|
}
|
|
|
|
TEST_CASE("PreviewCount_Zero", "") {
|
|
PreviewCounter counter(std::chrono::seconds(0));
|
|
|
|
REQUIRE(counter.GeneratePreview()); // always generate preview
|
|
REQUIRE(counter.GeneratePreview());
|
|
REQUIRE(counter.GeneratePreview());
|
|
std::this_thread::sleep_for(std::chrono::seconds(1));
|
|
REQUIRE(counter.GeneratePreview());
|
|
}
|
|
|
|
TEST_CASE("PreviewCount_Off", "") {
|
|
PreviewCounter counter({});
|
|
|
|
REQUIRE(!counter.GeneratePreview()); // never generate preview
|
|
REQUIRE(!counter.GeneratePreview());
|
|
REQUIRE(!counter.GeneratePreview());
|
|
std::this_thread::sleep_for(std::chrono::seconds(1));
|
|
REQUIRE(!counter.GeneratePreview());
|
|
} |