3 #include <UnitTest++.h>
5 #include "../src/CurlUrlCreator.h"
7 SUITE(CurlUrlCreatorTests
)
9 TEST(InitInstanceWithoutAddingParamsReturnsBaseUrl
)
11 CurlUrlCreator
cucu("http://example.com/get");
12 CHECK_EQUAL("http://example.com/get", cucu
.buildUrl());
15 TEST(AddOneParameterPair
)
17 CurlUrlCreator
cucu("http://example.com/get");
18 cucu
.addParameter("foo", "bar");
20 auto url
= cucu
.buildUrl();
21 CHECK(url
.find("http://example.com/get?") == 0);
22 CHECK_EQUAL("http://example.com/get?foo=bar", url
);
25 TEST(AddTwoParametersSeparateCalls
)
27 CurlUrlCreator
cucu("http://example.com/get");
28 cucu
.addParameter("foo", "bar");
29 cucu
.addParameter("baz", "nul");
30 auto url
= cucu
.buildUrl();
32 std::string expected
= "http://example.com/get?foo=bar&baz=nul";
33 CHECK_EQUAL(expected
.length(),
35 CHECK(url
.find("http://example.com/get?") == 0);
36 CHECK(url
.find("foo=bar") != std::string::npos
);
37 CHECK(url
.find("baz=nul") != std::string::npos
);
39 CHECK_EQUAL(1, std::count(url
.begin(), url
.end(), '&'));
42 TEST(AddTwoParametersChaining
)
44 CurlUrlCreator
cucu("http://example.com/get");
45 cucu
.addParameter("foo", "bar")
46 .addParameter("baz", "nul");
47 auto url
= cucu
.buildUrl();
49 std::string expected
= "http://example.com/get?foo=bar&baz=nul";
50 CHECK_EQUAL(expected
.length(),
52 CHECK(url
.find("http://example.com/get?") == 0);
53 CHECK(url
.find("foo=bar") != std::string::npos
);
54 CHECK(url
.find("baz=nul") != std::string::npos
);
55 CHECK_EQUAL(1, std::count(url
.begin(), url
.end(), '&'));
58 TEST(AddParametersAgainOverwrites
)
60 CurlUrlCreator
cucu("http://example.com/get");
61 cucu
.addParameter("foo", "bar");
62 cucu
.addParameter("baz", "nul");
63 cucu
.addParameter("zig", "zag");
64 cucu
.addParameter("baz", "kling");
66 std::string expected
= "http://example.com/get?foo=bar&baz=kling&zig=zag";
67 auto url
= cucu
.buildUrl();
68 CHECK_EQUAL(expected
.length(),
70 CHECK(url
.find("http://example.com/get?") == 0);
71 CHECK(url
.find("foo=bar") != std::string::npos
);
72 CHECK(url
.find("baz=kling") != std::string::npos
);
73 CHECK(url
.find("zig=zag") != std::string::npos
);
74 CHECK_EQUAL(2, std::count(url
.begin(), url
.end(), '&'));
77 TEST(Reset_MustReturnBaseUrl
)
79 CurlUrlCreator
cucu("http://example.com/get");
80 cucu
.addParameter("foo", "bar");
82 auto url
= cucu
.buildUrl();
83 CHECK(url
.find("http://example.com/get") == 0);
84 CHECK("http://example.com/get" != url
);
87 url
= cucu
.buildUrl();
88 CHECK(url
.find("http://example.com/get") == 0);
89 CHECK_EQUAL("http://example.com/get", url
);