public void NonNotifyingPropertyInitialValue()
        {
            int nativeEvents = 0, kokoEvents = 0;
            var myNativeProperty = new MyWritableNonNotifyingNativePropertyClass();

            myNativeProperty.GreetingChanged += delegate { nativeEvents++; };

            myNativeProperty.Greeting = "hello";
            nativeEvents.Should().Be(1);

            var kokoProperty = new NativeWritableProperty <string>(myNativeProperty, nameof(myNativeProperty.Greeting), nameof(myNativeProperty.GreetingChanged));

            kokoProperty.PropertyChanged += delegate { kokoEvents++; };
            kokoProperty.Value.Should().Be("hello");
            kokoEvents.Should().Be(0, "not changed while koko property existed yet");
        }
        public void NonNotifyingPropertyValueSettable()
        {
            int nativeEvents = 0, kokoEvents = 0;

            var myNativeProperty = new MyWritableNonNotifyingNativePropertyClass();

            myNativeProperty.Greeting         = "hello";
            myNativeProperty.GreetingChanged += delegate { nativeEvents++; };

            var kokoProperty = new NativeWritableProperty <string>(myNativeProperty, nameof(myNativeProperty.Greeting), nameof(myNativeProperty.GreetingChanged));

            kokoProperty.PropertyChanged += delegate { kokoEvents++; };

            kokoProperty.Value = "howdy";
            kokoProperty.Value.Should().Be("howdy");
            kokoEvents.Should().Be(1);
            nativeEvents.Should().Be(1);
        }