fully handle case-test