Skip to content

Commit 7985015

Browse files
committed
chore: fix test
1 parent 7e7439a commit 7985015

File tree

2 files changed

+57
-51
lines changed

2 files changed

+57
-51
lines changed

src/ic_oss_bucket/src/api_init.rs

Lines changed: 17 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -66,48 +66,37 @@ impl UpgradeArgs {
6666

6767
#[ic_cdk::init]
6868
fn init(args: Option<CanisterArgs>) {
69-
match args.expect("Init args is missing") {
70-
CanisterArgs::Init(args) => {
69+
match args {
70+
Some(CanisterArgs::Init(args)) => {
7171
store::state::with_mut(|b| {
72-
b.name = if args.name.is_empty() {
73-
"default".to_string()
74-
} else {
75-
args.name
72+
if !args.name.is_empty() {
73+
b.name = args.name
7674
};
7775
b.file_id = args.file_id;
78-
b.max_file_size = if args.max_file_size == 0 {
79-
MAX_FILE_SIZE
80-
} else {
81-
args.max_file_size
76+
if args.max_file_size > 0 {
77+
b.max_file_size = args.max_file_size
8278
};
83-
b.max_folder_depth = if args.max_folder_depth == 0 {
84-
10
85-
} else {
86-
args.max_folder_depth
79+
if args.max_folder_depth > 0 {
80+
b.max_folder_depth = args.max_folder_depth
8781
};
88-
b.max_children = if args.max_children == 0 {
89-
1000
90-
} else {
91-
args.max_children
82+
if args.max_children > 0 {
83+
b.max_children = args.max_children
9284
};
93-
b.visibility = if args.visibility == 0 { 0 } else { 1 };
94-
b.max_custom_data_size = if args.max_custom_data_size == 0 {
95-
1024 * 4
96-
} else {
97-
args.max_custom_data_size
85+
if args.visibility > 0 {
86+
b.visibility = 1
87+
};
88+
if args.max_custom_data_size > 0 {
89+
b.max_custom_data_size = args.max_custom_data_size
9890
};
9991
b.enable_hash_index = args.enable_hash_index;
100-
101-
// The root folder 0 is created by default
102-
b.folder_id = 1;
103-
b.folder_count = 1;
10492
});
10593
}
106-
CanisterArgs::Upgrade(_) => {
94+
Some(CanisterArgs::Upgrade(_)) => {
10795
ic_cdk::trap(
10896
"Cannot initialize the canister with an Upgrade args. Please provide an Init args.",
10997
);
11098
}
99+
None => {}
111100
}
112101

113102
store::state::save();

src/ic_oss_bucket/src/store.rs

Lines changed: 40 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ use std::{
3131

3232
type Memory = VirtualMemory<DefaultMemoryImpl>;
3333

34-
#[derive(Clone, Default, Deserialize, Serialize)]
34+
#[derive(Clone, Deserialize, Serialize)]
3535
pub struct Bucket {
3636
pub name: String,
3737
pub file_count: u64,
@@ -54,6 +54,29 @@ pub struct Bucket {
5454
pub trusted_eddsa_pub_keys: Vec<ByteN<32>>,
5555
}
5656

57+
impl Default for Bucket {
58+
fn default() -> Self {
59+
Self {
60+
name: "default".to_string(),
61+
file_count: 0,
62+
file_id: 0,
63+
folder_count: 1, // The root folder 0 is created by default
64+
folder_id: 1,
65+
max_file_size: MAX_FILE_SIZE,
66+
max_folder_depth: 10,
67+
max_children: 100,
68+
max_custom_data_size: 1024 * 4,
69+
enable_hash_index: false,
70+
status: 0,
71+
visibility: 0,
72+
managers: BTreeSet::new(),
73+
auditors: BTreeSet::new(),
74+
trusted_ecdsa_pub_keys: Vec::new(),
75+
trusted_eddsa_pub_keys: Vec::new(),
76+
}
77+
}
78+
}
79+
5780
impl Bucket {
5881
pub fn read_permission(
5982
&self,
@@ -1267,10 +1290,6 @@ mod test {
12671290
#[test]
12681291
fn test_fs() {
12691292
state::with_mut(|b| {
1270-
b.name = "default".to_string();
1271-
b.max_file_size = MAX_FILE_SIZE;
1272-
b.max_folder_depth = 10;
1273-
b.max_children = 1000;
12741293
b.enable_hash_index = true;
12751294
});
12761295

@@ -1284,16 +1303,14 @@ mod test {
12841303
..Default::default()
12851304
})
12861305
.unwrap();
1287-
assert_eq!(f1, 1);
1306+
assert_eq!(f1, 0);
12881307

1289-
assert!(fs::get_full_chunks(0).is_err());
12901308
let f1_data = fs::get_full_chunks(f1).unwrap();
12911309
assert!(f1_data.is_empty());
12921310

12931311
let f1_meta = fs::get_file(f1).unwrap();
12941312
assert_eq!(f1_meta.name, "f1.bin");
12951313

1296-
assert!(fs::update_chunk(0, 0, 999, [0u8; 32].to_vec(), |_| Ok(())).is_err());
12971314
let _ = fs::update_chunk(f1, 0, 999, [0u8; 32].to_vec(), |_| Ok(())).unwrap();
12981315
let _ = fs::update_chunk(f1, 1, 1000, [0u8; 32].to_vec(), |_| Ok(())).unwrap();
12991316
let f1_data = fs::get_full_chunks(f1).unwrap();
@@ -1318,7 +1335,7 @@ mod test {
13181335
..Default::default()
13191336
})
13201337
.unwrap();
1321-
assert_eq!(f2, 2);
1338+
assert_eq!(f2, 1);
13221339
fs::update_chunk(f2, 0, 999, [0u8; 16].to_vec(), |_| Ok(())).unwrap();
13231340
fs::update_chunk(f2, 1, 1000, [1u8; 16].to_vec(), |_| Ok(())).unwrap();
13241341
fs::update_chunk(f1, 3, 1000, [1u8; 16].to_vec(), |_| Ok(())).unwrap();
@@ -1360,7 +1377,7 @@ mod test {
13601377
.into_iter()
13611378
.map(|v| v.id)
13621379
.collect::<Vec<_>>(),
1363-
vec![2, 1]
1380+
vec![f2, f1]
13641381
);
13651382

13661383
assert_eq!(
@@ -1391,9 +1408,9 @@ mod test {
13911408
vec![2, 1]
13921409
);
13931410

1394-
fs::move_file(1, 0, 1, 1000).unwrap();
1411+
fs::move_file(f1, 0, 1, 1000).unwrap();
13951412
assert_eq!(
1396-
fs::get_file_ancestors(1),
1413+
fs::get_file_ancestors(f1),
13971414
vec![FolderName {
13981415
id: 1,
13991416
name: "fd1".to_string(),
@@ -1404,19 +1421,19 @@ mod test {
14041421
.into_iter()
14051422
.map(|v| v.id)
14061423
.collect::<Vec<_>>(),
1407-
vec![2]
1424+
vec![f2]
14081425
);
14091426
assert_eq!(
14101427
fs::list_files(1, 999, 999)
14111428
.into_iter()
14121429
.map(|v| v.id)
14131430
.collect::<Vec<_>>(),
1414-
vec![1]
1431+
vec![f1]
14151432
);
14161433

1417-
fs::move_file(2, 0, 2, 1000).unwrap();
1434+
fs::move_file(f2, 0, 2, 1000).unwrap();
14181435
assert_eq!(
1419-
fs::get_file_ancestors(2),
1436+
fs::get_file_ancestors(f2),
14201437
vec![FolderName {
14211438
id: 2,
14221439
name: "fd2".to_string(),
@@ -1434,7 +1451,7 @@ mod test {
14341451
.into_iter()
14351452
.map(|v| v.id)
14361453
.collect::<Vec<_>>(),
1437-
vec![2]
1454+
vec![f2]
14381455
);
14391456

14401457
fs::move_folder(2, 0, 1, 1000).unwrap();
@@ -1446,7 +1463,7 @@ mod test {
14461463
}]
14471464
);
14481465
assert_eq!(
1449-
fs::get_file_ancestors(2),
1466+
fs::get_file_ancestors(f2),
14501467
vec![
14511468
FolderName {
14521469
id: 2,
@@ -1460,15 +1477,15 @@ mod test {
14601477
);
14611478

14621479
assert_eq!(
1463-
fs::batch_delete_subfiles(0, BTreeSet::from([1, 2]), 999).unwrap(),
1480+
fs::batch_delete_subfiles(0, BTreeSet::from([f1, f2]), 999).unwrap(),
14641481
Vec::<u32>::new()
14651482
);
14661483

1467-
fs::move_file(1, 1, 0, 1000).unwrap();
1468-
fs::move_file(2, 2, 0, 1000).unwrap();
1484+
fs::move_file(f1, 1, 0, 1000).unwrap();
1485+
fs::move_file(f2, 2, 0, 1000).unwrap();
14691486
assert_eq!(
1470-
fs::batch_delete_subfiles(0, BTreeSet::from([2, 1]), 999).unwrap(),
1471-
vec![1, 2]
1487+
fs::batch_delete_subfiles(0, BTreeSet::from([f2, f1]), 999).unwrap(),
1488+
vec![f1, f2]
14721489
);
14731490
assert!(fs::delete_folder(1, 999, |_| Ok(())).is_err());
14741491
assert!(fs::delete_folder(2, 999, |_| Ok(())).unwrap());

0 commit comments

Comments
 (0)