#include <gtest/gtest.h>
+#include <cynara-limits.h>
#include <protocol/ProtocolAdmin.h>
#include <request/ListRequest.h>
+#include <NegativeTestHelper.h>
#include <RequestTestHelper.h>
#include <TestDataCollection.h>
} /* namespace anonymous */
using namespace Cynara;
+using namespace NegativeTestHelper;
using namespace RequestTestHelper;
using namespace TestDataCollection;
/* *** compare by objects test cases *** */
-TEST(ProtocolAdmin, ListRequest01) {
- auto request = std::make_shared<ListRequest>(Buckets::empty, Keys::k_nun, SN::min);
- auto protocol = std::make_shared<ProtocolAdmin>();
- testRequest(request, protocol);
-}
-
-TEST(ProtocolAdmin, ListRequest02) {
- auto request = std::make_shared<ListRequest>(Buckets::not_empty, Keys::k_cup, SN::min_1);
- auto protocol = std::make_shared<ProtocolAdmin>();
- testRequest(request, protocol);
-}
-
-TEST(ProtocolAdmin, ListRequest03) {
- auto request = std::make_shared<ListRequest>(Buckets::empty, Keys::k_www, SN::min_2);
- auto protocol = std::make_shared<ProtocolAdmin>();
- testRequest(request, protocol);
-}
-
-TEST(ProtocolAdmin, ListRequest04) {
- auto request = std::make_shared<ListRequest>(Buckets::not_empty, Keys::k_wuw, SN::max);
- auto protocol = std::make_shared<ProtocolAdmin>();
- testRequest(request, protocol);
-}
-
-TEST(ProtocolAdmin, ListRequest05) {
- auto request = std::make_shared<ListRequest>(Buckets::empty, Keys::k_aaa, SN::max_1);
- auto protocol = std::make_shared<ProtocolAdmin>();
- testRequest(request, protocol);
-}
-
-TEST(ProtocolAdmin, ListRequest06) {
- auto request = std::make_shared<ListRequest>(Buckets::not_empty, Keys::k_wua, SN::max_2);
- auto protocol = std::make_shared<ProtocolAdmin>();
- testRequest(request, protocol);
-}
-
-TEST(ProtocolAdmin, ListRequest07) {
- auto request = std::make_shared<ListRequest>(Buckets::empty, Keys::k_nua, SN::mid);
- auto protocol = std::make_shared<ProtocolAdmin>();
- testRequest(request, protocol);
+TEST(ProtocolAdmin, ListRequestPositive) {
+ for (auto &bucket : Buckets::all) {
+ for (auto &key : Keys::all) {
+ for (auto &sequenceNumber : SN::all) {
+ auto request = std::make_shared<ListRequest>(bucket, key, sequenceNumber);
+ auto protocol = std::make_shared<ProtocolAdmin>();
+ testRequest(request, protocol);
+ }
+ }
+ }
}
/* *** compare by serialized data test cases *** */
-TEST(ProtocolAdmin, ListRequestBinary01) {
- auto request = std::make_shared<ListRequest>(Buckets::empty, Keys::k_nun, SN::min);
- auto protocol = std::make_shared<ProtocolAdmin>();
- binaryTestRequest(request, protocol);
+TEST(ProtocolAdmin, ListRequestBinaryPositive) {
+ for (auto &bucket : Buckets::all) {
+ for (auto &key : Keys::all) {
+ for (auto &sequenceNumber : SN::all) {
+ auto request = std::make_shared<ListRequest>(bucket, key, sequenceNumber);
+ auto protocol = std::make_shared<ProtocolAdmin>();
+ binaryTestRequest(request, protocol);
+ }
+ }
+ }
}
-TEST(ProtocolAdmin, ListRequestBinary02) {
- auto request = std::make_shared<ListRequest>(Buckets::not_empty, Keys::k_cup, SN::min_1);
- auto protocol = std::make_shared<ProtocolAdmin>();
- binaryTestRequest(request, protocol);
+/* *** invalid protocol tests for too long strings *** */
+
+TEST(ProtocolAdmin, ListRequestTooLongClientNegative) {
+ PKF tooLongClient = PKF::create(std::string(CYNARA_MAX_ID_LENGTH + 1, 'c'));
+ PolicyKey key(tooLongClient, Keys::k_nun.user(), Keys::k_aaa.privilege());
+ for (auto &bucket : Buckets::all) {
+ for (auto &sequenceNumber : SN::all) {
+ testInvalidProtocol<ProtocolAdmin, ListRequest>
+ (bucket, key, sequenceNumber);
+ }
+ }
}
-TEST(ProtocolAdmin, ListRequestBinary03) {
- auto request = std::make_shared<ListRequest>(Buckets::empty, Keys::k_www, SN::min_2);
- auto protocol = std::make_shared<ProtocolAdmin>();
- binaryTestRequest(request, protocol);
+TEST(ProtocolAdmin, ListRequestTooLongUserNegative) {
+ PKF tooLongUser = PKF::create(std::string(CYNARA_MAX_ID_LENGTH + 1, 'u'));
+ PolicyKey key(Keys::k_wwp.client(), tooLongUser, Keys::k_cup2.privilege());
+ for (auto &bucket : Buckets::all) {
+ for (auto &sequenceNumber : SN::all) {
+ testInvalidProtocol<ProtocolAdmin, ListRequest>
+ (bucket, key, sequenceNumber);
+ }
+ }
}
-TEST(ProtocolAdmin, ListRequestBinary04) {
- auto request = std::make_shared<ListRequest>(Buckets::not_empty, Keys::k_wuw, SN::max);
- auto protocol = std::make_shared<ProtocolAdmin>();
- binaryTestRequest(request, protocol);
+TEST(ProtocolAdmin, ListRequestTooLongPrivilegeNegative) {
+ PKF tooLongPrivilege = PKF::create(std::string(CYNARA_MAX_ID_LENGTH + 1, 'p'));
+ PolicyKey key(Keys::k_wua.client(), Keys::k_aup.user(), tooLongPrivilege);
+ for (auto &bucket : Buckets::all) {
+ for (auto &sequenceNumber : SN::all) {
+ testInvalidProtocol<ProtocolAdmin, ListRequest>
+ (bucket, key, sequenceNumber);
+ }
+ }
}
-TEST(ProtocolAdmin, ListRequestBinary05) {
- auto request = std::make_shared<ListRequest>(Buckets::empty, Keys::k_aaa, SN::max_1);
- auto protocol = std::make_shared<ProtocolAdmin>();
- binaryTestRequest(request, protocol);
+TEST(ProtocolAdmin, ListRequestTooLongBucketNegative) {
+ PolicyBucketId bucket(CYNARA_MAX_ID_LENGTH + 1, 'b');
+ for (auto &key : Keys::all) {
+ for (auto &sequenceNumber : SN::all) {
+ testInvalidProtocol<ProtocolAdmin, ListRequest>
+ (bucket, key, sequenceNumber);
+ }
+ }
}
-TEST(ProtocolAdmin, ListRequestBinary06) {
- auto request = std::make_shared<ListRequest>(Buckets::not_empty, Keys::k_wua, SN::max_2);
- auto protocol = std::make_shared<ProtocolAdmin>();
- binaryTestRequest(request, protocol);
-}
-
-TEST(ProtocolAdmin, ListRequestBinary07) {
- auto request = std::make_shared<ListRequest>(Buckets::empty, Keys::k_nua, SN::mid);
- auto protocol = std::make_shared<ProtocolAdmin>();
- binaryTestRequest(request, protocol);
-}