public void ShouldNotifyChangesInHealth()
        {
            HeroBuilder builder = new HeroBuilder().WithHealth(100);
            IHero       hero    = builder.Build();

            INotifyPropertyChanged notifier = hero as INotifyPropertyChanged;

            Assert.That(notifier, Is.Not.Null,
                        "Hero class should implement an interface that enables property change notifications.");

            IList <string> changedProperties = new List <string>();

            notifier.PropertyChanged += (sender, args) =>
            {
                changedProperties.Add(args.PropertyName);
            };

            //trigger Health change
            builder.WithHealth(50);

            Assert.That(changedProperties.FirstOrDefault(), Is.EqualTo(nameof(IHero.Health)), "A change in Health is not notified.");
        }