public void GetBooleanFieldsStatesTest()
        {
            // Arrange
            var queryGenerator = new SearchQueryGeneratorTest { RootTable = new TableDefinition("Test") };
            var valuesList = new Dictionary<string, object>
                                 {
                                     { "IsSwitchToggle", false },
                                     { "MainLabel", "" },
                                     { "UndefinedLabel", "" },
                                     { "TrueLabel", "True" },
                                     { "FalseLabel", "False" }
                                 };
            queryGenerator.RootTable.AddField(Field1Name, ColumnTypes.Boolean, null, true, true, valuesList);

            valuesList = new Dictionary<string, object>
                             {
                                 { "IsSwitchToggle", true },
                                 { "MainLabel", "CustomLabel" },
                                 { "UndefinedLabel", "Undefined" },
                                 { "TrueLabel", "On" },
                                 { "FalseLabel", "Off" }
                             };
            queryGenerator.RootTable.AddField(Field2Name, ColumnTypes.Boolean, null, true, true, valuesList);

            queryGenerator.ColumnRepresentations.Add(Field1Name, new ColumnRepresentation(Field1Name, Field1Name, 0));
            queryGenerator.ColumnRepresentations.Add(Field2Name, new ColumnRepresentation(Field2Name, Field2Name, 1));

            queryGenerator.GlobalFilter = "tru";

            // Act
            var result = queryGenerator.GetBooleanFieldsStates_Public();
            // Assert
            Assert.AreEqual(result.Count, 1);
            Assert.IsTrue(result.Any(x => x.Key.Equals(Field1Name)));
            Assert.IsTrue(result.First().Value.HasFlag(ToggleState.Checked));
            Assert.IsFalse(result.First().Value.HasFlag(ToggleState.Unchecked));
            Assert.IsFalse(result.First().Value.HasFlag(ToggleState.Undefined));

            // Arrange
            queryGenerator.GlobalFilter = "false";
            // Act
            result = queryGenerator.GetBooleanFieldsStates_Public();
            // Assert
            Assert.AreEqual(result.Count, 1);
            Assert.IsTrue(result.Any(x => x.Key.Equals(Field1Name)));
            Assert.IsTrue(result.First().Value.HasFlag(ToggleState.Unchecked));
            Assert.IsFalse(result.First().Value.HasFlag(ToggleState.Checked));
            Assert.IsFalse(result.First().Value.HasFlag(ToggleState.Undefined));

            // Arrange
            queryGenerator.GlobalFilter = "o";
            // Act
            result = queryGenerator.GetBooleanFieldsStates_Public();
            // Assert
            Assert.AreEqual(result.Count, 1);
            Assert.IsTrue(result.Any(x => x.Key.Equals(Field2Name)));
            Assert.IsTrue(result.First().Value.HasFlag(ToggleState.Checked));
            Assert.IsTrue(result.First().Value.HasFlag(ToggleState.Unchecked));
            Assert.IsFalse(result.First().Value.HasFlag(ToggleState.Undefined));

            // Arrange
            queryGenerator.GlobalFilter = "defined";
            // Act
            result = queryGenerator.GetBooleanFieldsStates_Public();
            // Assert
            Assert.AreEqual(result.Count, 1);
            Assert.IsTrue(result.Any(x => x.Key.Equals(Field2Name)));
            Assert.IsFalse(result.First().Value.HasFlag(ToggleState.Checked));
            Assert.IsFalse(result.First().Value.HasFlag(ToggleState.Unchecked));
            Assert.IsTrue(result.First().Value.HasFlag(ToggleState.Undefined));

            // Arrange
            queryGenerator.GlobalFilter = "Z";
            // Act
            result = queryGenerator.GetBooleanFieldsStates_Public();
            // Assert
            Assert.IsTrue(result.IsNullOrEmpty());
        }