return true;
}
+
+dependency_x *GetTestDepInfo(std::string pkgid) {
+ dependency_x *dependency;
+ dependency = reinterpret_cast<dependency_x *>(
+ calloc(1, sizeof(dependency_x)));
+
+ dependency->pkgid = strdup(pkgid.c_str());
+ dependency->depends_on = strdup("test_depends_on");
+ dependency->required_version = strdup("test_required_version");
+ dependency->type = strdup("test_type");
+
+ return dependency;
+}
+
+bool IsEqualDepInfo(const std::vector<dependency_x *>& depA,
+ const std::vector<dependency_x *>& depB) {
+ INT_EQ(depA.size(), depB.size());
+
+ for (int i = 0; i < depA.size(); ++i) {
+ dependency_x *A = depA[0];
+ dependency_x *B = depB[0];
+ STR_EQ(A->depends_on, B->depends_on);
+ STR_EQ(A->pkgid, B->pkgid);
+ STR_EQ(A->required_version, B->required_version);
+ STR_EQ(A->type, B->type);
+ }
+
+ return true;
+}
#include "common/parcel/abstract_parcelable.hh"
#include "common/parcel/appinfo_parcelable.hh"
#include "common/parcel/certinfo_parcelable.hh"
+#include "common/parcel/command_parcelable.hh"
+#include "common/parcel/depinfo_parcelable.hh"
#include "common/parcel/filter_parcelable.hh"
#include "common/parcel/parcelable_factory.hh"
#include "common/parcel/pkginfo_parcelable.hh"
EXPECT_EQ(origin_parcelable.GetOpType(), new_parcelable.GetOpType());
}
+TEST_F(ParcelTest, CommandParcelable) {
+ tizen_base::Parcel parcel;
+
+ pp::CommandParcelable origin_parcelable(0, RemoveCache);
+ pp::CommandParcelable new_parcelable;
+ parcel.WriteParcelable(origin_parcelable);
+ parcel.ReadParcelable(&new_parcelable);
+
+ EXPECT_EQ(origin_parcelable.GetCmd(), new_parcelable.GetCmd());
+}
+
+TEST_F(ParcelTest, DepInfoParcelable) {
+ tizen_base::Parcel parcel;
+ std::vector<dependency_x *> dependencies;
+ dependencies.emplace_back(GetTestDepInfo("pkg1"));
+ dependencies.emplace_back(GetTestDepInfo("pkg2"));
+ dependencies.emplace_back(GetTestDepInfo("pkg3"));
+
+ pp::DepInfoParcelable origin_parcelable(0, std::move(dependencies));
+ pp::DepInfoParcelable new_parcelable;
+ parcel.WriteParcelable(origin_parcelable);
+ parcel.ReadParcelable(&new_parcelable);
+
+ EXPECT_TRUE(IsEqualDepInfo(origin_parcelable.GetDependencyInfo(), new_parcelable.GetDependencyInfo()));
+}
+
TEST_F(ParcelTest, ParcelableFactory) {
tizen_base::Parcel parcel;
std::unique_ptr<pp::AbstractParcelable> ptr;
pp::PkgInfoParcelable pkginfo_parcelable;
pp::QueryParcelable query_parcelable;
pp::ResultParcelable result_parcelable;
+ pp::CommandParcelable command_parcelable;
+ pp::DepInfoParcelable depinfo_parcelable;
parcel.WriteParcelable(appinfo_parcelable);
ptr = pp::ParcelableFactory::GetInst().CreateParcel(&parcel.GetRaw()[0],
EXPECT_NE(ptr, nullptr);
EXPECT_EQ(ptr->GetType(), pp::ParcelableType::Result);
parcel.Clear();
+
+ parcel.WriteParcelable(command_parcelable);
+ ptr = pp::ParcelableFactory::GetInst().CreateParcel(&parcel.GetRaw()[0],
+ parcel.GetRaw().size());
+ EXPECT_NE(ptr, nullptr);
+ EXPECT_EQ(ptr->GetType(), pp::ParcelableType::Command);
+ parcel.Clear();
+
+ parcel.WriteParcelable(depinfo_parcelable);
+ ptr = pp::ParcelableFactory::GetInst().CreateParcel(&parcel.GetRaw()[0],
+ parcel.GetRaw().size());
+ EXPECT_NE(ptr, nullptr);
+ EXPECT_EQ(ptr->GetType(), pp::ParcelableType::DepInfo);
+ parcel.Clear();
}