well, then I would say there should be two separated tests. each with a different responsibility:
1. checking an actual cost calculation (no of items * cost of a single item)
2. checking that update won't mess up a returned cost