emberemu/tests/RealmList.cpp
2024-05-31 09:13:31 +01:00

91 lines
No EOL
2.3 KiB
C++

/*
* Copyright (c) 2024 Ember
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
#include <array>
#include <login/RealmList.h>
#include <gtest/gtest.h>
using namespace ember;
TEST(RealmList, ZeroRealms) {
RealmList list;
auto realms = list.realms();
ASSERT_EQ(realms->empty(), true);
}
TEST(RealmList, AddRealmsCtor) {
const std::array<Realm, 2> init_realms {{
{ .id = 0, .name = "Test Realm #1" },
{ .id = 1, .name = "Test Realm #2" },
}};
RealmList list(init_realms);
auto realms = list.realms();
ASSERT_EQ(realms->size(), init_realms.size());
ASSERT_EQ(realms->at(0).name, "Test Realm #1");
ASSERT_EQ(realms->at(1).name, "Test Realm #2");
}
TEST(RealmList, AddRealms) {
RealmList list;
list.add_realm({ .id = 0, .name = "Test Realm #1" });
list.add_realm({ .id = 1, .name = "Test Realm #2" });
auto realms = list.realms();
ASSERT_EQ(realms->size(), 2);
ASSERT_EQ(realms->at(0).name, "Test Realm #1");
ASSERT_EQ(realms->at(1).name, "Test Realm #2");
}
TEST(RealmList, AddRealmsSpan) {
const std::array<Realm, 2> init_realms {{
{ .id = 0, .name = "Test Realm #1" },
{ .id = 1, .name = "Test Realm #2" },
}};
RealmList list;
list.add_realm(init_realms);
auto realms = list.realms();
ASSERT_EQ(realms->size(), 2);
ASSERT_EQ(realms->at(0).name, "Test Realm #1");
ASSERT_EQ(realms->at(1).name, "Test Realm #2");
}
TEST(RealmList, AddRealmUpdate) {
RealmList list;
list.add_realm({ .id = 0, .name = "Test Realm #1" });
auto realms = list.realms();
ASSERT_EQ(realms->size(), 1);
ASSERT_EQ(realms->at(0).name, "Test Realm #1");
list.add_realm({ .id = 0, .name = "Test Realm #2" });
realms = list.realms();
ASSERT_EQ(realms->size(), 1);
ASSERT_EQ(realms->at(0).name, "Test Realm #2");
}
TEST(RealmList, GetRealm) {
const Realm init_realm {
.id = 5,
.name = "Zenedar"
};
RealmList list;
list.add_realm(init_realm);
auto realm = list.get_realm(5);
ASSERT_EQ(realm.has_value(), true);
ASSERT_EQ(realm->id, init_realm.id);
ASSERT_EQ(realm->name, init_realm.name);
}
TEST(RealmList, GetInvalidRealm) {
RealmList list;
list.add_realm({ .id = 0, .name = "Test Realm #1" });
auto realm = list.get_realm(1);
ASSERT_EQ(realm.has_value(), false);
}