diff --git a/src/net/Qml.Net.Tests/Qml/BaseQmlTests.cs b/src/net/Qml.Net.Tests/Qml/BaseQmlTests.cs index aabc65e9..4c847cb1 100644 --- a/src/net/Qml.Net.Tests/Qml/BaseQmlTests.cs +++ b/src/net/Qml.Net.Tests/Qml/BaseQmlTests.cs @@ -5,6 +5,7 @@ using System.Threading.Tasks; using Moq; using Qml.Net.Internal; using Qml.Net.Internal.Behaviors; +using Qml.Net.Internal.Qml; namespace Qml.Net.Tests.Qml { @@ -74,6 +75,24 @@ namespace Qml.Net.Tests.Qml return result; } + protected void RunQmlTest(string instanceId, string componentOnCompletedCode) + { + NetTestHelper.RunQml(qmlApplicationEngine, + string.Format(@" + import QtQuick 2.0 + import tests 1.0 + {0} {{ + id: {1} + Component.onCompleted: function() {{ + {2} + }} + }} + ", + typeof(TQmlRegistered).Name, + instanceId, + componentOnCompletedCode)); + } + public override void Dispose() { qmlApplicationEngine.Dispose(); diff --git a/src/net/Qml.Net.Tests/Qml/MvvmInteropBehaviorTests.cs b/src/net/Qml.Net.Tests/Qml/MvvmInteropBehaviorTests.cs index d59556c3..c9abbf7b 100644 --- a/src/net/Qml.Net.Tests/Qml/MvvmInteropBehaviorTests.cs +++ b/src/net/Qml.Net.Tests/Qml/MvvmInteropBehaviorTests.cs @@ -161,21 +161,15 @@ namespace Qml.Net.Tests.Qml [Fact] public void Does_register_property_changed_signal() { - NetTestHelper.RunQml(qmlApplicationEngine, - @" - import QtQuick 2.0 - import tests 1.0 - ViewModelContainer { - id: viewModelContainer - Component.onCompleted: function() { - var vm = viewModelContainer.viewModel - vm.stringPropertyChanged.connect(function() { - viewModelContainer.testResult = true - }) - viewModelContainer.changeStringPropertyTo('new value') - } - } - "); + RunQmlTest( + "viewModelContainer", + @" + var vm = viewModelContainer.viewModel + vm.stringPropertyChanged.connect(function() { + viewModelContainer.testResult = true + }) + viewModelContainer.changeStringPropertyTo('new value') + "); Instance.TestResult.Should().Be(true); } @@ -228,21 +222,15 @@ namespace Qml.Net.Tests.Qml [Fact] public void Does_play_nicely_with_completely_custom_notify_signals() { - NetTestHelper.RunQml(qmlApplicationEngine, + RunQmlTest( + "viewModelContainer", @" - import QtQuick 2.0 - import tests 1.0 - ViewModelContainer { - id: viewModelContainer - Component.onCompleted: function() { - var vm = viewModelContainer.viewModel - vm.customIntPropertyChangedSignal.connect(function() { - viewModelContainer.testResult = true - }) - viewModelContainer.changeCustomIntPropertyTo(3) - } - } - "); + var vm = viewModelContainer.viewModel + vm.customIntPropertyChangedSignal.connect(function() { + viewModelContainer.testResult = true + }) + viewModelContainer.changeCustomIntPropertyTo(3) + "); Instance.TestResult.Should().Be(true); } @@ -250,21 +238,15 @@ namespace Qml.Net.Tests.Qml [Fact] public void Does_play_nicely_with_custom_notify_signals() { - NetTestHelper.RunQml(qmlApplicationEngine, + RunQmlTest( + "viewModelContainer", @" - import QtQuick 2.0 - import tests 1.0 - ViewModelContainer { - id: viewModelContainer - Component.onCompleted: function() { - var vm = viewModelContainer.viewModel - vm.customMvvmStyleIntPropertyChanged.connect(function() { - viewModelContainer.testResult = true - }) - viewModelContainer.changeCustomMvvmStyleIntPropertyTo(3) - } - } - "); + var vm = viewModelContainer.viewModel + vm.customMvvmStyleIntPropertyChanged.connect(function() { + viewModelContainer.testResult = true + }) + viewModelContainer.changeCustomMvvmStyleIntPropertyTo(3) + "); Instance.TestResult.Should().Be(true); } @@ -272,21 +254,15 @@ namespace Qml.Net.Tests.Qml [Fact] public void Does_not_interfer_with_properties_only_using_notify_signals() { - NetTestHelper.RunQml(qmlApplicationEngine, + RunQmlTest( + "viewModelContainer", @" - import QtQuick 2.0 - import tests 1.0 - ViewModelContainer { - id: viewModelContainer - Component.onCompleted: function() { - var vm = viewModelContainer.viewModel - vm.notifyOnlyIntPropertyChanged.connect(function() { - viewModelContainer.testResult = true - }) - viewModelContainer.changeNotifyOnlyIntPropertyTo(3) - } - } - "); + var vm = viewModelContainer.viewModel + vm.notifyOnlyIntPropertyChanged.connect(function() { + viewModelContainer.testResult = true + }) + viewModelContainer.changeNotifyOnlyIntPropertyTo(3) + "); Instance.TestResult.Should().Be(true); } @@ -294,21 +270,15 @@ namespace Qml.Net.Tests.Qml [Fact] public void Does_not_interfer_with_properties_only_using_custom_notify_signals() { - NetTestHelper.RunQml(qmlApplicationEngine, + RunQmlTest( + "viewModelContainer", @" - import QtQuick 2.0 - import tests 1.0 - ViewModelContainer { - id: viewModelContainer - Component.onCompleted: function() { - var vm = viewModelContainer.viewModel - vm.customNotifyIntPropertyChangedSignal.connect(function() { - viewModelContainer.testResult = true - }) - viewModelContainer.changeCustomNotifyOnlyIntPropertyTo(3) - } - } - "); + var vm = viewModelContainer.viewModel + vm.customNotifyIntPropertyChangedSignal.connect(function() { + viewModelContainer.testResult = true + }) + viewModelContainer.changeCustomNotifyOnlyIntPropertyTo(3) + "); Instance.TestResult.Should().Be(true); }