! Test suite that focuses on methods implemented in base class StateItemSpec ! The tests made more sense in the previous adapter scheme. With ! StateItemAspect, the tests are almost trivial. module Test_BaseItemSpec use MockItemSpecMod use gftl2_StringVector use funit implicit none contains @test ! Just needed for bootstrapping from older adapters => aspects subroutine get_aspect_empty() type(StringVector) :: aspect_names type(MockItemSpec) :: spec, goal spec = MockItemSpec(name='0') goal = MockItemSpec(name='0') aspect_names = spec%get_aspect_order(goal) associate ( expected => aspect_names%size() ) ! returns INT64 @assert_that(int(expected), is(0)) end associate end subroutine get_aspect_empty @test subroutine get_aspect_one() type(StringVector) :: aspect_names type(MockItemSpec) :: spec, goal spec = MockItemSpec(name='1') goal = MockItemSpec(name='0') aspect_names = spec%get_aspect_order(goal) associate ( expected => aspect_names%size() ) ! returns INT64 @assert_that(int(expected), is(1)) end associate @assertEqual(aspect_names%of(1), 'TYPEKIND') end subroutine get_aspect_one @test subroutine get_aspect_multi() type(StringVector) :: aspect_names type(MockItemSpec) :: spec, goal spec = MockItemSpec(name='3') goal = MockItemSpec(name='0') aspect_names = spec%get_aspect_order(goal) associate ( expected => aspect_names%size() ) ! returns INT64 @assert_that(int(expected), is(2)) end associate @assertEqual(aspect_names%of(1), 'TYPEKIND') @assertEqual(aspect_names%of(2), 'UNITS') end subroutine get_aspect_multi end module Test_BaseItemSpec