public void TestVirtStatusIsNot(string filter, string[] expectedVmNames)
        {
            var dict = PropertyAccessors.Geti18nFor(PropertyNames.virtualisation_status) as Dictionary <string, VM.VirtualisationStatus>;

            Assert.NotNull(dict, "Did not find i18n for VM.VirtualisationStatus");
            Assert.IsTrue(dict.TryGetValue(filter, out var status), $"Did not find i18n for {filter}");

            var query = new EnumPropertyQuery <VM.VirtualisationStatus>(PropertyNames.virtualisation_status, status, false);

            CheckMatch(query, expectedVmNames);
        }
        private void CheckMatch(EnumPropertyQuery <VM.VirtualisationStatus> query, string[] expectedVmNames)
        {
            foreach (var moqVm in _allVms)
            {
                var  vm    = moqVm.Object;
                bool?match = query.MatchProperty(vm.GetVirtualisationStatus(out _));
                Assert.True(match.HasValue);

                var name = vm.Name();
                if (expectedVmNames.Contains(name))
                {
                    Assert.True(match.Value, $"VM {name} was not in the expected query results");
                }
                else
                {
                    Assert.False(match.Value, $"Found unexpected VM {name} in the query results");
                }
            }
        }