diff options
author | Roland Reichwein <mail@reichwein.it> | 2023-03-03 16:55:33 +0100 |
---|---|---|
committer | Roland Reichwein <mail@reichwein.it> | 2023-03-03 16:55:33 +0100 |
commit | 96476044387e98ee1ee7a6eb992b521bd447813c (patch) | |
tree | caffaaef53a0afeafb5b68c460b42e98e72044c4 /tests/test-diff.cpp | |
parent | c9fa963e71258c5adfb71cf1996cd1bcb33df0bb (diff) |
Diffstat (limited to 'tests/test-diff.cpp')
-rw-r--r-- | tests/test-diff.cpp | 199 |
1 files changed, 0 insertions, 199 deletions
diff --git a/tests/test-diff.cpp b/tests/test-diff.cpp deleted file mode 100644 index d09c58e..0000000 --- a/tests/test-diff.cpp +++ /dev/null @@ -1,199 +0,0 @@ -#include <gtest/gtest.h> - -#include <filesystem> -#include <string> -#include <system_error> - -#include <stdlib.h> - -#include <boost/property_tree/ptree.hpp> - -#include "libreichwein/file.h" - -#include "diff.h" - -namespace fs = std::filesystem; -namespace pt = boost::property_tree; -using namespace Reichwein; - -class DiffTest: public ::testing::Test -{ -protected: - DiffTest(){ - } - - ~DiffTest(){ - } -}; - -TEST_F(DiffTest, constructor) -{ - // empty constructor - { - Diff d{}; - EXPECT_EQ(d.get_xml(), "<diff><start>0</start><end>0</end><data/></diff>"); - } - - // constructor via xml diff - { - EXPECT_THROW(Diff d{""}, std::exception); - } - { - EXPECT_THROW(Diff d{"<diff><begin></begin></diff>"}, std::exception); - EXPECT_THROW(Diff d{"<diff><end>0</end><data>abc</data></diff>"}, std::exception); - EXPECT_THROW(Diff d{"<diff><start>0</start><data>abc</data></diff>"}, std::exception); - EXPECT_THROW(Diff d{"<diff><start>0</start><end>0</end></diff>"}, std::exception); - EXPECT_THROW(Diff d{"<diff><start>5</start><end>0</end><data>abc</data></diff>"}, std::exception); - EXPECT_THROW(Diff d{"<diff><start></start><end>0</end><data>abc</data></diff>"}, std::exception); - } - - { - Diff d{"<diff><start>0</start><end>0</end><data>abc</data></diff>"}; - EXPECT_EQ(d.get_xml(), "<diff><start>0</start><end>0</end><data>abc</data></diff>"); - } - - { - Diff d{"<diff><start>5</start><end>5</end><data>abc</data></diff>"}; - EXPECT_EQ(d.get_xml(), "<diff><start>5</start><end>5</end><data>abc</data></diff>"); - } - - { - Diff d{"<diff><start>5</start><end>50</end><data>abc</data></diff>"}; - EXPECT_EQ(d.get_xml(), "<diff><start>5</start><end>50</end><data>abc</data></diff>"); - } - - // constructor via ptree - { - pt::ptree ptree; - EXPECT_THROW(Diff d{ptree}, std::exception); - - ptree.put("diff.start", 0); - ptree.put("diff.end", 0); - ptree.put("diff.data", "abc"); - Diff d{ptree}; - EXPECT_EQ(d.get_xml(), "<diff><start>0</start><end>0</end><data>abc</data></diff>"); - } - - // constructor via versions - { - Diff d{"", ""}; - EXPECT_EQ(d.get_xml(), "<diff><start>0</start><end>0</end><data/></diff>"); - } - { - Diff d{"a", "a"}; - EXPECT_EQ(d.get_xml(), "<diff><start>0</start><end>0</end><data/></diff>"); - } - { - Diff d{"a", "b"}; - EXPECT_EQ(d.get_xml(), "<diff><start>0</start><end>1</end><data>b</data></diff>"); - } - { - Diff d{"0a1", "0b1"}; - EXPECT_EQ(d.get_xml(), "<diff><start>1</start><end>2</end><data>b</data></diff>"); - } - { - Diff d{"0abc1", "00b01"}; - EXPECT_EQ(d.get_xml(), "<diff><start>1</start><end>4</end><data>0b0</data></diff>"); - } - { - Diff d{"0ab1", "00b01"}; - EXPECT_EQ(d.get_xml(), "<diff><start>1</start><end>3</end><data>0b0</data></diff>"); - } - { - Diff d{"0abc1", "00b1"}; - EXPECT_EQ(d.get_xml(), "<diff><start>1</start><end>4</end><data>0b</data></diff>"); - } - { - Diff d{"0abc1", ""}; - EXPECT_EQ(d.get_xml(), "<diff><start>0</start><end>5</end><data/></diff>"); - } - { - Diff d{"bc1", "0abc1"}; - EXPECT_EQ(d.get_xml(), "<diff><start>0</start><end>0</end><data>0a</data></diff>"); - } - { - Diff d{"0abc1", "0ab"}; - EXPECT_EQ(d.get_xml(), "<diff><start>3</start><end>5</end><data/></diff>"); - } - { - Diff d{"0abc1", "0abc123"}; - EXPECT_EQ(d.get_xml(), "<diff><start>5</start><end>5</end><data>23</data></diff>"); - } - { - Diff d{"0abc1", "010abc1"}; - EXPECT_EQ(d.get_xml(), "<diff><start>0</start><end>0</end><data>01</data></diff>"); - } - { - Diff d{"0abc1", "0ac1"}; - EXPECT_EQ(d.get_xml(), "<diff><start>2</start><end>3</end><data/></diff>"); - } - { - Diff d{"0abc1", "0abxc1"}; - EXPECT_EQ(d.get_xml(), "<diff><start>3</start><end>3</end><data>x</data></diff>"); - } - { - Diff d{"abc", "c"}; - EXPECT_EQ(d.get_xml(), "<diff><start>0</start><end>2</end><data/></diff>"); - } - { - Diff d{"aaaa", "aa"}; - EXPECT_EQ(d.get_xml(), "<diff><start>2</start><end>4</end><data/></diff>"); - } - { - Diff d{"baaaa", "baa"}; - EXPECT_EQ(d.get_xml(), "<diff><start>3</start><end>5</end><data/></diff>"); - } - { - Diff d{"baaaab", "baab"}; - EXPECT_EQ(d.get_xml(), "<diff><start>1</start><end>3</end><data/></diff>"); - } - { - Diff d{"baaaab", "baaaaaaab"}; - EXPECT_EQ(d.get_xml(), "<diff><start>1</start><end>1</end><data>aaa</data></diff>"); - } -} - -TEST_F(DiffTest, empty) -{ - { - Diff d; - EXPECT_TRUE(d.empty()); - } - - { - Diff d{"<diff><start>1</start><end>3</end><data/></diff>"}; - EXPECT_FALSE(d.empty()); - } - - { - Diff d{"<diff><start>1</start><end>1</end><data/></diff>"}; - EXPECT_TRUE(d.empty()); - } - - { - Diff d{"<diff><start>1</start><end>1</end><data>abc</data></diff>"}; - EXPECT_FALSE(d.empty()); - } - - { - Diff d{"<diff><start>0</start><end>0</end><data/></diff>"}; - EXPECT_TRUE(d.empty()); - } -} - -TEST_F(DiffTest, diff_create) -{ - const char* result {diff_create("0abc1", "0ab")}; - - EXPECT_EQ(std::string(result), "<diff><start>3</start><end>5</end><data/></diff>"); - free((void*)result); // this will be done by javascript side in real scenario -} - -TEST_F(DiffTest, diff_apply) -{ - const char* result {diff_apply("0abc1", "<diff><start>3</start><end>5</end><data/></diff>")}; - - EXPECT_EQ(std::string(result), "0ab"); - free((void*)result); // this will be done by javascript side in real scenario -} - |