Extract method
replace cabinet.Direct to new direct in CabinetTest
move test method from cabinet test to direct test
add two new test method for direct test
extract interface ICabinet and inline pick method in all subclass of interface ICabinet