-
Notifications
You must be signed in to change notification settings - Fork 66
Expand file tree
/
Copy pathreader_with_class_manager_test.rs
More file actions
48 lines (41 loc) · 1.76 KB
/
reader_with_class_manager_test.rs
File metadata and controls
48 lines (41 loc) · 1.76 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
use std::sync::Arc;
use blockifier::execution::contract_class::RunnableCompiledClass;
use blockifier::state::state_api::{MockStateReader, StateReader};
use cairo_lang_starknet_classes::casm_contract_class::CasmContractClass;
use mockall::predicate;
use starknet_api::class_hash;
use starknet_api::contract_class::{ContractClass, SierraVersion};
use starknet_class_manager_types::MockClassManagerClient;
use crate::reader_with_class_manager::ReaderWithClassManager;
#[tokio::test]
async fn test_get_compiled_class() {
let mock_state_state_reader = MockStateReader::new();
let mut mock_class_manager_client = MockClassManagerClient::new();
let class_hash = class_hash!("0x2");
let casm_contract_class = CasmContractClass {
compiler_version: "0.0.0".to_string(),
prime: Default::default(),
bytecode: Default::default(),
bytecode_segment_lengths: Default::default(),
hints: Default::default(),
pythonic_hints: Default::default(),
entry_points_by_type: Default::default(),
};
let expected_result = casm_contract_class.clone();
mock_class_manager_client
.expect_get_executable()
.times(1)
.with(predicate::eq(class_hash))
.returning(move |_| {
Ok(ContractClass::V1((casm_contract_class.clone(), SierraVersion::default())))
});
let state_reader =
ReaderWithClassManager::new(mock_state_state_reader, Arc::new(mock_class_manager_client));
let result = state_reader.get_compiled_class(class_hash).unwrap();
assert_eq!(
result,
RunnableCompiledClass::V1((expected_result, SierraVersion::default()).try_into().unwrap())
);
}
// TODO(noamsp): Add tests for get_storage_at, get_nonce_at, get_class_hash_at,
// get_compiled_class_hash