40 lines
1.5 KiB
C++
40 lines
1.5 KiB
C++
#include <gtest/gtest.h>
|
|
#include <QJsonArray>
|
|
#include "dto/Vtk3dRequests.hpp"
|
|
using namespace geopro::data;
|
|
|
|
TEST(Vtk3dRequests, VoxelToJsonMatchesContract) {
|
|
VoxelGenerateRequest q;
|
|
q.projectId = "p1"; q.structParentId = "g1"; q.structParentConfType = 1;
|
|
q.name = "体A"; q.sourceDatasetIds = {"d1", "d2"};
|
|
const QJsonObject j = q.toJson();
|
|
EXPECT_EQ(j["projectId"].toString(), "p1");
|
|
EXPECT_EQ(j["structParentId"].toString(), "g1");
|
|
EXPECT_EQ(j["structParentConfType"].toInt(), 1);
|
|
EXPECT_EQ(j["name"].toString(), "体A");
|
|
ASSERT_TRUE(j["sourceDatasetIds"].isArray());
|
|
EXPECT_EQ(j["sourceDatasetIds"].toArray().size(), 2);
|
|
EXPECT_EQ(j["interpModel"].toString(), "Idw");
|
|
EXPECT_DOUBLE_EQ(j["cellXY"].toDouble(), 1.0);
|
|
// colorScaleId 为空时不应出现在请求体里。
|
|
EXPECT_FALSE(j.contains("colorScaleId"));
|
|
}
|
|
|
|
TEST(Vtk3dRequests, VoxelColorScaleIncludedWhenSet) {
|
|
VoxelGenerateRequest q;
|
|
q.colorScaleId = "cs1";
|
|
EXPECT_EQ(q.toJson()["colorScaleId"].toString(), "cs1");
|
|
}
|
|
|
|
TEST(Vtk3dRequests, SliceToJsonMatchesContract) {
|
|
SliceGenerateRequest q;
|
|
q.projectId = "p1"; q.volumeDsId = "v1"; q.name = "切片1"; q.axis = 3;
|
|
q.origin = {0, 0, -10}; q.point1 = {100, 0, -10}; q.point2 = {0, 50, -10};
|
|
const QJsonObject j = q.toJson();
|
|
EXPECT_EQ(j["volumeDsId"].toString(), "v1");
|
|
EXPECT_EQ(j["axis"].toInt(), 3);
|
|
ASSERT_TRUE(j["origin"].isArray());
|
|
EXPECT_EQ(j["origin"].toArray().size(), 3);
|
|
EXPECT_DOUBLE_EQ(j["point1"].toArray()[0].toDouble(), 100.0);
|
|
}
|