public static void A_EncapsulationAsBindingTogetherDataAndFunctions()
        {
            var color       = "Yellow";
            var specialGift = new SpecialFilledAndDecoratedGiftBox(2, color);

            // The color is a data of specialGift object.
            // It is stored in the field and protected from corruption by the property Color.
            // We cannot override data with incorrect value.
            specialGift.Color = string.Empty;

            specialGift
            .Color
            .Should()
            .Be(color);

            // The gift is a data of specialGift object too.
            // It is stored in the field and protected from corruption and incorrect filling by the method PackGift.
            // We cannot override data or store an incorrect one.

            Action packNothing = () => specialGift.PackGift(null);

            packNothing.Should().Throw <ArgumentException>();

            specialGift
            .PackGift("Tale");

            Action packAgain = () => specialGift.PackGift("Poem");

            packAgain.Should().Throw <InvalidOperationException>();
        }