The built-in .NET class, ReadOnlyCollection<T> is the
standard way to wrap a collection and make available only a read-only version
of the collection's contents. The collection lives in the
System.Collections.ObjectModel namespace. Once we update our Order class to
expose this collection as the type of its OrderHistory property, our
SneakyOrderHistoryCannotBeCleared() test no longer compiles, since it's not
possible to cast a ReadOnlyCollection<T> to a List<T>. The final
version of the Customer class looks like this:
