This example isn't actually testing anything.  After setting the negative mock expectation, you need to execute more code that may (or may not) call `warn_deprecation`.

In general, it's good to see each example we add go red (this obviously never went red because it can't...).  I often intentionally break the implementation code temporarily to force my examples to fail to validate that they fail in the ways I expect and with a useful failure message.