1 /*
2  * Copyright (c) 2023 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *    http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 use crate::common::*;
17 use asset_sdk::*;
18 
19 #[test]
update_same_secret()20 fn update_same_secret() {
21     let alias = function!().as_bytes();
22     let secret = function!().as_bytes();
23     add_default_asset(alias, secret).unwrap();
24 
25     let mut query = AssetMap::new();
26     query.insert_attr(Tag::Alias, alias.to_owned());
27 
28     let mut update = AssetMap::new();
29     update.insert_attr(Tag::Secret, secret.to_owned());
30 
31     asset_sdk::Manager::build().unwrap().update(&query, &update).unwrap();
32 
33     remove_by_alias(alias).unwrap();
34 }
35 
36 #[test]
update_different_secret()37 fn update_different_secret() {
38     let alias = function!().as_bytes();
39     let secret = function!().as_bytes();
40     add_default_asset(alias, secret).unwrap();
41 
42     let mut query = AssetMap::new();
43     query.insert_attr(Tag::Alias, alias.to_owned());
44 
45     let secret_new = "update_different_secret_new".as_bytes();
46 
47     let mut update = AssetMap::new();
48     update.insert_attr(Tag::Secret, secret_new.to_owned());
49 
50     asset_sdk::Manager::build().unwrap().update(&query, &update).unwrap();
51 
52     let res = query_all_by_alias(alias).unwrap();
53     assert_eq!(1, res.len());
54     assert_eq!(secret_new, res[0].get_bytes_attr(&Tag::Secret).unwrap());
55 
56     remove_by_alias(alias).unwrap();
57 }
58 
59 #[test]
update_attr_normal()60 fn update_attr_normal() {
61     let alias = function!().as_bytes();
62     let secret = function!().as_bytes();
63     add_default_asset(alias, secret).unwrap();
64 
65     let mut query = AssetMap::new();
66     query.insert_attr(Tag::Alias, alias.to_owned());
67 
68     let label_normal = "update_attr_normal".as_bytes();
69     let mut update = AssetMap::new();
70     update.insert_attr(Tag::DataLabelNormal1, label_normal.to_owned());
71 
72     asset_sdk::Manager::build().unwrap().update(&query, &update).unwrap();
73     let query_res = &query_attr_by_alias(alias).unwrap()[0];
74     let label_normal_query = query_res.get_bytes_attr(&Tag::DataLabelNormal1).unwrap();
75     assert_eq!(label_normal, label_normal_query);
76 
77     remove_by_alias(alias).unwrap();
78 }
79 
80 #[test]
update_non_exist()81 fn update_non_exist() {
82     let alias = function!().as_bytes();
83     let label_normal = function!().as_bytes();
84 
85     let mut query = AssetMap::new();
86     query.insert_attr(Tag::Alias, alias.to_owned());
87 
88     let mut update = AssetMap::new();
89     update.insert_attr(Tag::DataLabelNormal1, label_normal.to_owned());
90 
91     expect_error_eq(ErrCode::NotFound, asset_sdk::Manager::build().unwrap().update(&query, &update).unwrap_err());
92 }
93