BrightstarDB.Tests.EntityFramework.LinqTests.TestLinqQueryEnum C# (CSharp) Метод

TestLinqQueryEnum() приватный Метод

private TestLinqQueryEnum ( ) : void
Результат void
        public void TestLinqQueryEnum()
        {
            var connectionString = GetConnectionString("TestLinqQueryEnum");
            if (connectionString.Contains("type=dotnetrdf"))
            {
                Assert.Inconclusive("Enum tests fail against DNR store");
            }
            var context = new MyEntityContext(connectionString);
            var entity1 = context.TestEntities.Create();
            entity1.SomeEnumeration = TestEnumeration.Second;
            entity1.SomeNullableEnumeration = TestEnumeration.Third;
            entity1.SomeNullableFlagsEnumeration = TestFlagsEnumeration.FlagA | TestFlagsEnumeration.FlagB;
            context.SaveChanges();
            
            // Find by single flag
            IList<ITestEntity> results = context.TestEntities.Where(e => e.SomeEnumeration == TestEnumeration.Second).ToList();
            Assert.AreEqual(1, results.Count);
            Assert.IsTrue(results.Any(x=>x.Id.Equals(entity1.Id)));


            // Find by flag combo
            results =
                context.TestEntities.Where(
                    e => e.SomeNullableFlagsEnumeration == (TestFlagsEnumeration.FlagB | TestFlagsEnumeration.FlagA)).ToList();
            Assert.AreEqual(1, results.Count);
            Assert.IsTrue(results.Any(x => x.Id.Equals(entity1.Id)));

            // Find by one flag of combo
            results = context.TestEntities.Where(
                e => ((e.SomeNullableFlagsEnumeration & TestFlagsEnumeration.FlagB) == TestFlagsEnumeration.FlagB)).
                ToList();
            Assert.AreEqual(1, results.Count);
            Assert.IsTrue(results.Any(x => x.Id.Equals(entity1.Id)));

            // Find by one flag not set on combo
            results = context.TestEntities.Where(
                e => ((e.SomeNullableFlagsEnumeration & TestFlagsEnumeration.FlagC) == TestFlagsEnumeration.NoFlags)).
                ToList();
            Assert.AreEqual(1, results.Count);
            Assert.IsTrue(results.Any(x => x.Id.Equals(entity1.Id)));

            // Find by both flags set on combo
            results = context.TestEntities.Where(
                e =>
                ((e.SomeNullableFlagsEnumeration & (TestFlagsEnumeration.FlagA | TestFlagsEnumeration.FlagB)) ==
                 (TestFlagsEnumeration.FlagA | TestFlagsEnumeration.FlagB))).ToList();
            Assert.AreEqual(1, results.Count);
            Assert.IsTrue(results.Any(x => x.Id.Equals(entity1.Id)));

            results = context.TestEntities.Where(
                e =>
                ((e.SomeNullableFlagsEnumeration & (TestFlagsEnumeration.FlagA | TestFlagsEnumeration.FlagC)) ==
                 (TestFlagsEnumeration.FlagA | TestFlagsEnumeration.FlagC))).ToList();
            Assert.AreEqual(0, results.Count);
            

            // Find by NoFlags
            results =
                context.TestEntities.Where(
                    e => e.SomeFlagsEnumeration == TestFlagsEnumeration.NoFlags).ToList();
            Assert.AreEqual(1, results.Count);
            Assert.IsTrue(results.Any(x => x.Id.Equals(entity1.Id)));
        }