Skip to content

Commit

Permalink
chore: unit tests on space manager
Browse files Browse the repository at this point in the history
  • Loading branch information
Orlando committed Feb 6, 2024
1 parent b677a04 commit 1931cc2
Showing 1 changed file with 116 additions and 0 deletions.
116 changes: 116 additions & 0 deletions starknet/src/utils/space_manager.cairo
Original file line number Diff line number Diff line change
Expand Up @@ -63,3 +63,119 @@ mod SpaceManager {
}
}
}

#[cfg(test)]
mod tests {
use starknet::{ContractAddress};
use super::SpaceManager;

#[test]
#[available_gas(10000000)]
fn initializer() {
let mut state = SpaceManager::unsafe_new_contract_state();
SpaceManager::InternalImpl::initializer(
ref state, array![starknet::contract_address_const::<0x123456789>()].span()
);
assert(
SpaceManager::InternalImpl::is_space_enabled(
@state, starknet::contract_address_const::<0x123456789>()
),
'initializer failed'
);
}

#[test]
#[available_gas(10000000)]
#[should_panic(expected: ('Invalid Space',))]
fn initializer_duplicate_address() {
let mut state = SpaceManager::unsafe_new_contract_state();
SpaceManager::InternalImpl::initializer(
ref state,
array![
starknet::contract_address_const::<0x123456789>(),
starknet::contract_address_const::<0x123456789>()
]
.span()
);
}

#[test]
#[available_gas(10000000)]
#[should_panic(expected: ('Invalid Space',))]
fn initializer_zero_address() {
let mut state = SpaceManager::unsafe_new_contract_state();
SpaceManager::InternalImpl::initializer(
ref state, array![starknet::contract_address_const::<0x0>()].span()
);
}

#[test]
#[available_gas(10000000)]
fn enable_space() {
let mut state = SpaceManager::unsafe_new_contract_state();
SpaceManager::InternalImpl::initializer(ref state, array![].span());
SpaceManager::InternalImpl::enable_space(
ref state, starknet::contract_address_const::<0x123456789>()
);
assert(
SpaceManager::InternalImpl::is_space_enabled(
@state, starknet::contract_address_const::<0x123456789>()
),
'enable_space failed'
);
}

#[test]
#[available_gas(10000000)]
#[should_panic(expected: ('Invalid Space',))]
fn enable_space_duplicate_address() {
let mut state = SpaceManager::unsafe_new_contract_state();
SpaceManager::InternalImpl::initializer(ref state, array![].span());
SpaceManager::InternalImpl::enable_space(
ref state, starknet::contract_address_const::<0x123456789>()
);
SpaceManager::InternalImpl::enable_space(
ref state, starknet::contract_address_const::<0x123456789>()
);
}

#[test]
#[available_gas(10000000)]
#[should_panic(expected: ('Invalid Space',))]
fn enable_space_zero_address() {
let mut state = SpaceManager::unsafe_new_contract_state();
SpaceManager::InternalImpl::initializer(ref state, array![].span());
SpaceManager::InternalImpl::enable_space(
ref state, starknet::contract_address_const::<0x0>()
);
}

#[test]
#[available_gas(10000000)]
fn disable_space() {
let mut state = SpaceManager::unsafe_new_contract_state();
SpaceManager::InternalImpl::initializer(
ref state, array![starknet::contract_address_const::<0x123456789>()].span()
);
SpaceManager::InternalImpl::disable_space(
ref state, starknet::contract_address_const::<0x123456789>()
);
assert(
!SpaceManager::InternalImpl::is_space_enabled(
@state, starknet::contract_address_const::<0x123456789>()
),
'disable_space failed'
);
}

#[test]
#[available_gas(10000000)]
#[should_panic(expected: ('Invalid Space',))]
fn disable_space_not_enabled() {
let mut state = SpaceManager::unsafe_new_contract_state();
SpaceManager::InternalImpl::initializer(ref state, array![].span());
SpaceManager::InternalImpl::disable_space(
ref state, starknet::contract_address_const::<0x123456789>()
);
}
}

0 comments on commit 1931cc2

Please sign in to comment.