add Testcase and arrange code
Revert "add Testcase and arrange code"

This reverts commit af5199bcd9bb94f582a07a8ef22749bdbef017de.
Revert "Revert "add Testcase and arrange code""

This reverts commit a95526847e146c1e673ce252ef918894ac0383c5.