eliminate test code reliance on Shop.AddItem()

Since interfaces are likely to change, elimating a direct reliance on the interface will make changes smoother
eliminate test code reliance on Shop.size

By eliminating test codes' direct reliance on the Shop interface, i eliminate the need to apply changes to each test code whenever the interface changes. Instead, a wrapper function is used. Now only the wrapper function needs to be changed
eliminate test code reliance on Shop.top

Eliminating test code reliance on direct interface makes the direct interface more flexible if and when changes need to be distributed
remove top > size check