31 lines
1.3 KiB
C++
31 lines
1.3 KiB
C++
#include <gtest/gtest.h>
|
|
#include <QSignalSpy>
|
|
#include "DatasetDetailController.hpp"
|
|
#include "repo/IDatasetRepository.hpp"
|
|
using namespace geopro;
|
|
namespace {
|
|
struct StubRepo : data::IDatasetRepository {
|
|
bool fail = false;
|
|
std::vector<data::GsNode> loadStructure() override { return {}; }
|
|
core::Grid loadGrid(const std::string&) override { if (fail) throw std::runtime_error("x"); core::Grid g(2,2); g.x={0,1}; g.y={0,1}; return g; }
|
|
core::ScatterField loadScatter(const std::string&) override { return {}; }
|
|
core::ColorScale loadColorScale(const std::string&) override { return {}; }
|
|
core::ColorScale loadScatterColorScale(const std::string&) override { return {}; }
|
|
std::vector<core::Anomaly> loadAnomalies(const std::string&) override { return {}; }
|
|
};
|
|
}
|
|
TEST(DatasetDetailController, EmitsChartReadyOnSuccess) {
|
|
StubRepo repo;
|
|
controller::DatasetDetailController c(repo);
|
|
QSignalSpy spy(&c, &controller::DatasetDetailController::chartReady);
|
|
c.openDataset("ds1", "dd_inversion_data");
|
|
EXPECT_EQ(spy.count(), 1);
|
|
}
|
|
TEST(DatasetDetailController, EmitsLoadFailedOnThrow) {
|
|
StubRepo repo; repo.fail = true;
|
|
controller::DatasetDetailController c(repo);
|
|
QSignalSpy spy(&c, &controller::DatasetDetailController::loadFailed);
|
|
c.openDataset("ds1", "dd_inversion_data");
|
|
EXPECT_EQ(spy.count(), 1);
|
|
}
|