From 4247b81e7756ce1ff01e097e634a9dcbc0912787 Mon Sep 17 00:00:00 2001 From: Roland Reichwein Date: Sat, 28 Jan 2023 17:06:57 +0100 Subject: Added tests --- tests/test-diff.cpp | 110 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 109 insertions(+), 1 deletion(-) (limited to 'tests/test-diff.cpp') diff --git a/tests/test-diff.cpp b/tests/test-diff.cpp index b6b703a..7061ef0 100644 --- a/tests/test-diff.cpp +++ b/tests/test-diff.cpp @@ -4,6 +4,8 @@ #include #include +#include + #include "libreichwein/file.h" #include "diff.h" @@ -23,6 +25,112 @@ protected: TEST_F(DiffTest, constructor) { - Diff diff{}; + // empty constructor + { + Diff d{}; + EXPECT_EQ(d.get_xml(), "00"); + } + + // constructor via xml diff + { + EXPECT_THROW(Diff d{""}, std::exception); + } + { + EXPECT_THROW(Diff d{""}, std::exception); + EXPECT_THROW(Diff d{"0abc"}, std::exception); + EXPECT_THROW(Diff d{"0abc"}, std::exception); + EXPECT_THROW(Diff d{"00"}, std::exception); + EXPECT_THROW(Diff d{"50abc"}, std::exception); + EXPECT_THROW(Diff d{"0abc"}, std::exception); + } + + { + Diff d{"00abc"}; + EXPECT_EQ(d.get_xml(), "00abc"); + } + + { + Diff d{"55abc"}; + EXPECT_EQ(d.get_xml(), "55abc"); + } + + { + Diff d{"550abc"}; + EXPECT_EQ(d.get_xml(), "550abc"); + } + + // constructor via versions + { + Diff d{"", ""}; + EXPECT_EQ(d.get_xml(), "00"); + } + { + Diff d{"a", "a"}; + EXPECT_EQ(d.get_xml(), "00"); + } + { + Diff d{"a", "b"}; + EXPECT_EQ(d.get_xml(), "01b"); + } + { + Diff d{"0a1", "0b1"}; + EXPECT_EQ(d.get_xml(), "12b"); + } + { + Diff d{"0abc1", "00b01"}; + EXPECT_EQ(d.get_xml(), "140b0"); + } + { + Diff d{"0ab1", "00b01"}; + EXPECT_EQ(d.get_xml(), "130b0"); + } + { + Diff d{"0abc1", "00b1"}; + EXPECT_EQ(d.get_xml(), "140b"); + } + { + Diff d{"0abc1", ""}; + EXPECT_EQ(d.get_xml(), "05"); + } + { + Diff d{"bc1", "0abc1"}; + EXPECT_EQ(d.get_xml(), "000a"); + } + { + Diff d{"0abc1", "0ab"}; + EXPECT_EQ(d.get_xml(), "35"); + } + { + Diff d{"0abc1", "0abc123"}; + EXPECT_EQ(d.get_xml(), "5523"); + } + { + Diff d{"0abc1", "010abc1"}; + EXPECT_EQ(d.get_xml(), "0001"); + } + { + Diff d{"0abc1", "0ac1"}; + EXPECT_EQ(d.get_xml(), "23"); + } + { + Diff d{"0abc1", "0abxc1"}; + EXPECT_EQ(d.get_xml(), "33x"); + } +} + +TEST_F(DiffTest, diff_create) +{ + const char* result {diff_create("0abc1", "0ab")}; + + EXPECT_EQ(std::string(result), "35"); + free((void*)result); // this will be done by javascript side in real scenario +} + +TEST_F(DiffTest, diff_apply) +{ + const char* result {diff_apply("0abc1", "35")}; + + EXPECT_EQ(std::string(result), "0ab"); + free((void*)result); // this will be done by javascript side in real scenario } -- cgit v1.2.3