LLPointer<LLInventoryItem> ll_create_item_from_sd(const LLSD& sd_item) { LLPointer<LLInventoryItem> rv = new LLInventoryItem; rv->setUUID(sd_item[INV_ITEM_ID_LABEL].asUUID()); rv->setParent(sd_item[INV_PARENT_ID_LABEL].asUUID()); rv->rename(sd_item[INV_NAME_LABEL].asString()); rv->setType( LLAssetType::lookup(sd_item[INV_ASSET_TYPE_LABEL].asString())); if (sd_item.has("shadow_id")) { LLUUID asset_id = sd_item["shadow_id"]; LLXORCipher cipher(MAGIC_ID.mData, UUID_BYTES); cipher.decrypt(asset_id.mData, UUID_BYTES); rv->setAssetUUID(asset_id); } if (sd_item.has(INV_ASSET_ID_LABEL)) { rv->setAssetUUID(sd_item[INV_ASSET_ID_LABEL].asUUID()); } rv->setDescription(sd_item[INV_DESC_LABEL].asString()); rv->setSaleInfo(ll_sale_info_from_sd(sd_item[INV_SALE_INFO_LABEL])); rv->setPermissions(ll_permissions_from_sd(sd_item[INV_PERMISSIONS_LABEL])); rv->setInventoryType( LLInventoryType::lookup( sd_item[INV_INVENTORY_TYPE_LABEL].asString())); rv->setFlags((U32)(sd_item[INV_FLAGS_LABEL].asInteger())); rv->setCreationDate(sd_item[INV_CREATION_DATE_LABEL].asInteger()); return rv; }
void llsaleinfo_test_t::test<1>() { //test case for getSaleType(), getSalePrice(), getCRC32() fn. //test case for setSaleType(), setSalePrice() fn. S32 sale_price = 10000; LLSaleInfo llsaleinfo(LLSaleInfo::FS_COPY, sale_price); const char* sale= "copy"; LLSD llsd_obj1 = ll_create_sd_from_sale_info(llsaleinfo); LLSaleInfo saleinfo1 = ll_sale_info_from_sd(llsd_obj1); ensure("1. The getSaleType() fn failed", LLSaleInfo::FS_COPY == llsaleinfo.getSaleType()); ensure("2. LLSaleInfo::isForSale() fn failed", TRUE == llsaleinfo.isForSale()); ensure("3. The getSalePrice() fn failed", sale_price == llsaleinfo.getSalePrice()); ensure("4. The getCRC32() fn failed", 235833404 == llsaleinfo.getCRC32()); ensure("5. LLSaleInfo::lookup(const char* name) fn failed", LLSaleInfo::FS_COPY == llsaleinfo.lookup(sale)); ensure_equals("6. ll_create_sd_from_sale_info() fn failed", llsaleinfo.getSalePrice(), saleinfo1.getSalePrice()); ensure_equals("7. ll_create_sd_from_sale_info() fn failed", llsaleinfo.getSaleType(), saleinfo1.getSaleType()); llsaleinfo.setSalePrice(10000000); llsaleinfo.setSaleType(LLSaleInfo::FS_ORIGINAL); sale = "cntn"; llsd_obj1 = ll_create_sd_from_sale_info(llsaleinfo); saleinfo1 = ll_sale_info_from_sd(llsd_obj1); ensure("8. The getSaleType() and setSaleType() fn failed", LLSaleInfo::FS_ORIGINAL == llsaleinfo.getSaleType()); ensure("9. LLSaleInfo::isForSale() fn failed", TRUE == llsaleinfo.isForSale()); ensure("10. The getSalePrice() fn failed", 10000000 == llsaleinfo.getSalePrice()); ensure("11. The getCRC32() fn failed", 127911702 == llsaleinfo.getCRC32()); ensure("12. LLSaleInfo::lookup(const char* name) fn failed", LLSaleInfo::FS_CONTENTS == llsaleinfo.lookup(sale)); ensure_equals("13. ll_create_sd_from_sale_info() fn failed", llsaleinfo.getSalePrice(), saleinfo1.getSalePrice()); ensure_equals("14. ll_create_sd_from_sale_info() fn failed", llsaleinfo.getSaleType(), saleinfo1.getSaleType()); llsaleinfo.setSalePrice(55000550); llsaleinfo.setSaleType(LLSaleInfo::FS_CONTENTS); sale = "orig"; llsd_obj1 = ll_create_sd_from_sale_info(llsaleinfo); saleinfo1 = ll_sale_info_from_sd(llsd_obj1); ensure("15. The getSaleType() and setSaleType() fn failed", LLSaleInfo::FS_CONTENTS == llsaleinfo.getSaleType()); ensure("16. LLSaleInfo::isForSale() fn failed", TRUE == llsaleinfo.isForSale()); ensure("17. The getSalePrice() fn failed", 55000550 == llsaleinfo.getSalePrice()); ensure("18. The getCRC32() fn failed", 408735656 == llsaleinfo.getCRC32()); ensure("19. LLSaleInfo::lookup(const char* name) fn failed", LLSaleInfo::FS_ORIGINAL == llsaleinfo.lookup(sale)); ensure_equals("20. ll_create_sd_from_sale_info() fn failed", llsaleinfo.getSalePrice(), saleinfo1.getSalePrice()); ensure_equals("21. ll_create_sd_from_sale_info() fn failed", llsaleinfo.getSaleType(), saleinfo1.getSaleType()); llsaleinfo.setSalePrice(-6432); llsaleinfo.setSaleType(LLSaleInfo::FS_NOT); sale = "not"; llsd_obj1 = ll_create_sd_from_sale_info(llsaleinfo); saleinfo1 = ll_sale_info_from_sd(llsd_obj1); ensure("22. The getSaleType() and setSaleType() fn failed", LLSaleInfo::FS_NOT == llsaleinfo.getSaleType()); ensure("23. LLSaleInfo::isForSale() fn failed", FALSE == llsaleinfo.isForSale()); ensure("24. The getSalePrice() fn failed", 0 == llsaleinfo.getSalePrice()); ensure("25. The getCRC32() fn failed", 0 == llsaleinfo.getCRC32()); ensure("26. LLSaleInfo::lookup(const char* name) fn failed", LLSaleInfo::FS_NOT == llsaleinfo.lookup(sale)); ensure_equals("27. ll_create_sd_from_sale_info() fn failed", llsaleinfo.getSalePrice(), saleinfo1.getSalePrice()); ensure_equals("28. ll_create_sd_from_sale_info() fn failed", llsaleinfo.getSaleType(), saleinfo1.getSaleType()); }