Skip to content

Commit 5cf0dfa

Browse files
committed
Added tests for IPv6 IPv4
1 parent 39f6d61 commit 5cf0dfa

File tree

9 files changed

+154
-9
lines changed

9 files changed

+154
-9
lines changed

README.md

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,19 @@ Classes for data validation
1919
- `new WSJCppValidatorNumber()` - validate format of number
2020
- `new WSJCppValidatorHex()` - validate hex value
2121

22+
## Completed static functions
23+
24+
- `WSJCppValidators::isValidDate(const std::string &sValue, std::string &sError)`
25+
- `WSJCppValidators::isValidTimeH24(const std::string &sValue, std::string &sError)`
26+
- `WSJCppValidators::isValidDomainName(const std::string &sValue, std::string &sError)`
27+
- `WSJCppValidators::isValidBase64(const std::string &sValue, std::string &sError)`
28+
- `WSJCppValidators::isValidIPv4(const std::string &sValue, std::string &sError)`
29+
- `WSJCppValidators::isValidIPv6(const std::string &sValue, std::string &sError)`
30+
2231
## Integrate to your project
2332

2433
Just include this files:
2534

26-
- src/wsjcpp_core/wsjcpp_core.h
27-
- src/wsjcpp_core/wsjcpp_core.cpp
2835
- src/wsjcpp_validators.h
2936
- src/wsjcpp_validators.cpp
3037

@@ -58,4 +65,4 @@ class WSJCppValidatorUUID : public WSJCppValidatorStringRegexpBase {
5865
TAG = "WSJCppValidatorUUID";
5966
}
6067
};
61-
```
68+
```

src.wsjcpp/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Automaticly generated by [email protected]
22
cmake_minimum_required(VERSION 3.0)
33

4-
add_definitions(-DWSJCPP_VERSION="v0.0.1")
4+
add_definitions(-DWSJCPP_VERSION="v0.0.3")
55
add_definitions(-DWSJCPP_NAME="wsjcpp-validators")
66

77
if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")

src/wsjcpp_validators.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
#include "wsjcpp_validators.h"
2-
#include <wsjcpp_core.h>
32
#include <arpa/inet.h>
43

54
bool WSJCppValidators::isValidDate(const std::string &sValue, std::string &sError) {

unit-tests.wsjcpp/CMakeLists.txt

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ list (APPEND WSJCPP_SOURCES "../src.wsjcpp/wsjcpp_core/wsjcpp_unit_tests.cpp")
2222
list (APPEND WSJCPP_SOURCES "../src.wsjcpp/wsjcpp_core/wsjcpp_unit_tests.h")
2323
list (APPEND WSJCPP_SOURCES "../src.wsjcpp/wsjcpp_core/wsjcpp_unit_tests_main.cpp")
2424

25-
# wsjcpp-validators:v0.0.1
25+
# wsjcpp-validators:v0.0.3
2626
list (APPEND WSJCPP_INCLUDE_DIRS "../src")
2727
list (APPEND WSJCPP_SOURCES "../src/wsjcpp_validators.h")
2828
list (APPEND WSJCPP_SOURCES "../src/wsjcpp_validators.cpp")
@@ -47,14 +47,16 @@ list (APPEND WSJCPP_SOURCES "../unit-tests.wsjcpp/src/unit_test_validator_reg_ex
4747
list (APPEND WSJCPP_SOURCES "../unit-tests.wsjcpp/src/unit_test_validator_reg_exp.cpp")
4848
list (APPEND WSJCPP_SOURCES "../unit-tests.wsjcpp/src/unit_test_validator_base64.h")
4949
list (APPEND WSJCPP_SOURCES "../unit-tests.wsjcpp/src/unit_test_validator_base64.cpp")
50-
# list (APPEND WSJCPP_SOURCES "../unit-tests.wsjcpp/src/unit_test_validator_url.h")
51-
# list (APPEND WSJCPP_SOURCES "../unit-tests.wsjcpp/src/unit_test_validator_url.cpp")
5250
list (APPEND WSJCPP_SOURCES "../unit-tests.wsjcpp/src/unit_test_validator_number.h")
5351
list (APPEND WSJCPP_SOURCES "../unit-tests.wsjcpp/src/unit_test_validator_number.cpp")
5452
list (APPEND WSJCPP_SOURCES "../unit-tests.wsjcpp/src/unit_test_validator_hex.h")
5553
list (APPEND WSJCPP_SOURCES "../unit-tests.wsjcpp/src/unit_test_validator_hex.cpp")
5654
list (APPEND WSJCPP_SOURCES "../unit-tests.wsjcpp/src/unit_test_validator_string_length.h")
5755
list (APPEND WSJCPP_SOURCES "../unit-tests.wsjcpp/src/unit_test_validator_string_length.cpp")
56+
list (APPEND WSJCPP_SOURCES "../unit-tests.wsjcpp/src/unit_test_is_valid_ip_v4.h")
57+
list (APPEND WSJCPP_SOURCES "../unit-tests.wsjcpp/src/unit_test_is_valid_ip_v4.cpp")
58+
list (APPEND WSJCPP_SOURCES "../unit-tests.wsjcpp/src/unit_test_is_valid_ip_v6.h")
59+
list (APPEND WSJCPP_SOURCES "../unit-tests.wsjcpp/src/unit_test_is_valid_ip_v6.cpp")
5860

5961
# required-libraries
6062
list (APPEND WSJCPP_LIBRARIES "-lpthread")
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
#include "unit_test_is_valid_ip_v4.h"
2+
#include <vector>
3+
#include <wsjcpp_core.h>
4+
#include <wsjcpp_validators.h>
5+
6+
REGISTRY_UNIT_TEST(UnitTestisValidIpV4)
7+
8+
UnitTestisValidIpV4::UnitTestisValidIpV4()
9+
: WSJCppUnitTestBase("UnitTestisValidIpV4") {
10+
}
11+
12+
// ---------------------------------------------------------------------
13+
14+
void UnitTestisValidIpV4::init() {
15+
// nothing
16+
}
17+
18+
// ---------------------------------------------------------------------
19+
20+
bool UnitTestisValidIpV4::run() {
21+
struct TestIPv4 {
22+
TestIPv4(const std::string &sIPv4, bool bExpected) :
23+
m_sIPv4(sIPv4), m_bExpected(bExpected) {
24+
25+
};
26+
std::string m_sIPv4;
27+
bool m_bExpected;
28+
29+
};
30+
std::vector<TestIPv4> vIPv4s;
31+
vIPv4s.push_back(TestIPv4("127.0.0.1", true));
32+
vIPv4s.push_back(TestIPv4("10.0.0.1", true));
33+
vIPv4s.push_back(TestIPv4("0.0.0.0", true));
34+
vIPv4s.push_back(TestIPv4("300.200.100.100", false));
35+
vIPv4s.push_back(TestIPv4("223.255.255.254", true));
36+
37+
vIPv4s.push_back(TestIPv4("aaaa", false));
38+
vIPv4s.push_back(TestIPv4("100.0.0.x", false));
39+
vIPv4s.push_back(TestIPv4("10033.1289.0.0", false));
40+
vIPv4s.push_back(TestIPv4("10033.1289.0.0.0.0.0", false));
41+
42+
bool bTestSuccess = true;
43+
for (int i = 0; i < vIPv4s.size(); i++) {
44+
TestIPv4 t = vIPv4s[i];
45+
std::string sError;
46+
bool bGotResult = WSJCppValidators::isValidIPv4(t.m_sIPv4, sError);
47+
compareB(bTestSuccess, "Test[" + t.m_sIPv4 + ", error=" + sError + "]", bGotResult, t.m_bExpected);
48+
}
49+
return bTestSuccess;
50+
}
51+
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
#ifndef UNIT_TEST_IS_VALID_IP_V4_H
2+
#define UNIT_TEST_IS_VALID_IP_V4_H
3+
4+
#include <wsjcpp_unit_tests.h>
5+
6+
// Description: TODO
7+
class UnitTestisValidIpV4 : public WSJCppUnitTestBase {
8+
public:
9+
UnitTestisValidIpV4();
10+
virtual void init();
11+
virtual bool run();
12+
};
13+
14+
#endif // UNIT_TEST_IS_VALID_IP_V4_H
15+
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
#include "unit_test_is_valid_ip_v6.h"
2+
#include <vector>
3+
#include <wsjcpp_core.h>
4+
#include <wsjcpp_validators.h>
5+
6+
REGISTRY_UNIT_TEST(UnitTestisValidIpV6)
7+
8+
UnitTestisValidIpV6::UnitTestisValidIpV6()
9+
: WSJCppUnitTestBase("UnitTestisValidIpV6") {
10+
}
11+
12+
// ---------------------------------------------------------------------
13+
14+
void UnitTestisValidIpV6::init() {
15+
// nothing
16+
}
17+
18+
// ---------------------------------------------------------------------
19+
20+
bool UnitTestisValidIpV6::run() {
21+
struct TestIPv6 {
22+
TestIPv6(const std::string &sIPv6, bool bExpected) :
23+
m_sIPv6(sIPv6), m_bExpected(bExpected) {
24+
25+
};
26+
std::string m_sIPv6;
27+
bool m_bExpected;
28+
29+
};
30+
std::vector<TestIPv6> vIPv6s;
31+
vIPv6s.push_back(TestIPv6("3FFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF", true));
32+
vIPv6s.push_back(TestIPv6("FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF", true));
33+
vIPv6s.push_back(TestIPv6("2607:f8b0:4002:c08::8b", true));
34+
vIPv6s.push_back(TestIPv6("2607:f8b0:4002:c08:0:0:0:8b", true));
35+
vIPv6s.push_back(TestIPv6("2000::", true));
36+
vIPv6s.push_back(TestIPv6("::1", true));
37+
vIPv6s.push_back(TestIPv6("aaaa", false));
38+
vIPv6s.push_back(TestIPv6("100.0.0.1", false));
39+
vIPv6s.push_back(TestIPv6("100.0.0.x", false));
40+
vIPv6s.push_back(TestIPv6("10033.1289.0.0", false));
41+
vIPv6s.push_back(TestIPv6("10033.1289.0.0.0.0.0", false));
42+
43+
bool bTestSuccess = true;
44+
for (int i = 0; i < vIPv6s.size(); i++) {
45+
TestIPv6 t = vIPv6s[i];
46+
std::string sError;
47+
bool bGotResult = WSJCppValidators::isValidIPv6(t.m_sIPv6, sError);
48+
compareB(bTestSuccess, "Test[" + t.m_sIPv6 + ", error = " + sError + "]", bGotResult, t.m_bExpected);
49+
}
50+
return bTestSuccess;
51+
}
52+
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
#ifndef UNIT_TEST_IS_VALID_IP_V6_H
2+
#define UNIT_TEST_IS_VALID_IP_V6_H
3+
4+
#include <wsjcpp_unit_tests.h>
5+
6+
// Description: TODO
7+
class UnitTestisValidIpV6 : public WSJCppUnitTestBase {
8+
public:
9+
UnitTestisValidIpV6();
10+
virtual void init();
11+
virtual bool run();
12+
};
13+
14+
#endif // UNIT_TEST_IS_VALID_IP_V6_H
15+

wsjcpp.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,14 @@ unit-tests:
6161
- name: "ValidatorBase64"
6262
description: "Validator Base64 format"
6363
# - name: "ValidatorUrl"
64-
# description: "Validator URL-format"
64+
# description: "Validator URL-format"
6565
- name: "ValidatorNumber"
6666
description: "Number validator"
6767
- name: "ValidatorHex"
6868
description: "Hex"
6969
- name: "ValidatorStringLength"
7070
description: "String Length"
71+
- name: "isValidIpV4"
72+
description: "test valid ipv4"
73+
- name: "isValidIpV6"
74+
description: "test valid ipv6"

0 commit comments

Comments
 (0)