From c503362e4e4e3929f4f753114d7282b2aecc66cd Mon Sep 17 00:00:00 2001 From: Paul Knopf Date: Tue, 16 Apr 2019 07:39:10 -0400 Subject: [PATCH] Added more unit tests. --- src/net/Qml.Net.Tests/Qml/MethodTests.cs | 50 +++++++++++++++ src/net/Qml.Net.Tests/Qml/PropertyTests.cs | 71 ++++++++++++++++++++++ 2 files changed, 121 insertions(+) create mode 100644 src/net/Qml.Net.Tests/Qml/MethodTests.cs create mode 100644 src/net/Qml.Net.Tests/Qml/PropertyTests.cs diff --git a/src/net/Qml.Net.Tests/Qml/MethodTests.cs b/src/net/Qml.Net.Tests/Qml/MethodTests.cs new file mode 100644 index 00000000..7ddd35fe --- /dev/null +++ b/src/net/Qml.Net.Tests/Qml/MethodTests.cs @@ -0,0 +1,50 @@ +using Moq; +using Xunit; + +namespace Qml.Net.Tests.Qml +{ + public class MethodTests : BaseQmlTests + { + public class MethodTestsQml : MethodTestsQmlBase + { + public virtual void DerivedMethod() + { + + } + } + + public class MethodTestsQmlBase + { + public virtual void BaseMethod() + { + + } + } + + [Fact] + public void Can_call_base_method() + { + RunQmlTest( + "test", + @" + test.baseMethod() + "); + + Mock.Verify(x => x.BaseMethod(), Times.Once); + Mock.Verify(x => x.DerivedMethod(), Times.Never); + } + + [Fact] + public void Can_call_derived_method() + { + RunQmlTest( + "test", + @" + test.derivedMethod() + "); + + Mock.Verify(x => x.BaseMethod(), Times.Never); + Mock.Verify(x => x.DerivedMethod(), Times.Once); + } + } +} \ No newline at end of file diff --git a/src/net/Qml.Net.Tests/Qml/PropertyTests.cs b/src/net/Qml.Net.Tests/Qml/PropertyTests.cs new file mode 100644 index 00000000..5f0560da --- /dev/null +++ b/src/net/Qml.Net.Tests/Qml/PropertyTests.cs @@ -0,0 +1,71 @@ +using Moq; +using Qml.Net.Internal.Qml; +using Xunit; + +namespace Qml.Net.Tests.Qml +{ + public class PropertyTests : BaseQmlTests + { + public class PropertyTestsQml : PropertyTestsQmlBase + { + public virtual bool DerivedProperty { get; set; } + } + + public class PropertyTestsQmlBase + { + public virtual bool BaseProperty { get; set; } + } + + [Fact] + public void Can_set_derived_property() + { + RunQmlTest( + "test", + @" + test.derivedProperty = true + "); + + Mock.VerifySet(x => x.DerivedProperty = true, Times.Once); + Mock.VerifySet(x => x.BaseProperty = true, Times.Never); + } + + [Fact] + public void Can_get_derived_property() + { + RunQmlTest( + "test", + @" + var t = test.derivedProperty + "); + + Mock.VerifyGet(x => x.DerivedProperty, Times.Once); + Mock.VerifyGet(x => x.BaseProperty, Times.Never); + } + + [Fact] + public void Can_set_base_property() + { + RunQmlTest( + "test", + @" + test.baseProperty = true + "); + + Mock.VerifySet(x => x.DerivedProperty = true, Times.Never); + Mock.VerifySet(x => x.BaseProperty = true, Times.Once); + } + + [Fact] + public void Can_get_base_property() + { + RunQmlTest( + "test", + @" + var t = test.baseProperty + "); + + Mock.VerifyGet(x => x.DerivedProperty, Times.Never); + Mock.VerifyGet(x => x.BaseProperty, Times.Once); + } + } +} \ No newline at end of file