コード例 #1
0
        public void QueryCritter_SelectToStringObjectDictionary_ReturnsCorrectValues()
        {
            Func <Critter, Dictionary <string, object> > selector = x =>
                                                                    new Dictionary <string, object>
            {
                { "critterId", x.Id },
                { "critterName", x.Name }
            };
            var expected = CritterEntities
                           .Select(
                selector)
                           .First();
            Expression <Func <ICritter, Dictionary <string, object> > > expression = x =>
                                                                                     new Dictionary <string, object>
            {
                { "critterId", x.Id },
                { "critterName", x.Name }
            };
            var actual =
                Client.Query <ICritter>()
                .Select(
                    expression)
                .First();

            AssertSequenceEqualsAndCountIsGreaterThanZero(actual, expected);
        }
コード例 #2
0
        public void QueryCritter_SelectIntThenSum()
        {
            var expected = CritterEntities.Select(x => x.Name.Length).Sum();
            var actual   = Client.Query <ICritter>().Select(x => x.Name.Length).Sum();

            Assert.That(actual, Is.EqualTo(expected));
        }
コード例 #3
0
        public void QueryCritter_SelectDoubleThenSum()
        {
            var expected = CritterEntities.Select(x => (double)x.Id).Sum();
            var actual   = Client.Query <ICritter>().Select(x => (double)x.Id).Sum();

            Assert.That(actual, Is.EqualTo(expected));
        }
コード例 #4
0
ファイル: QueryTests.cs プロジェクト: anthrax3/Pomona
        public void Query_SelectObjectArray_IsSuccessful()
        {
            var results           = Client.Critters.Query().Select(x => new object[] { x.Id, x.Guid, x.Hat }).ToList();
            var comparableResults = results.Select(x => new { Id = (int)x[0], Guid = (Guid)x[1], HatId = ((IHat)x[2]).Id }).ToList();
            var expected          = CritterEntities.Select(x => new { x.Id, x.Guid, HatId = x.Hat.Id });

            CollectionAssert.AreEqual(expected, comparableResults);
        }
コード例 #5
0
ファイル: QueryTests.cs プロジェクト: anthrax3/Pomona
        public void Select_WithClientServerSplit_CallingNewOfTypeOnlyAvailableOnClient_IsSuccessful()
        {
            var expected =
                CritterEntities.Select(x => new ClientSideClass(x.Id, x.Name)).ToList();
            var actual =
                Client.Critters.Select(x => new ClientSideClass(x.Id, x.Name)).ToList();

            CollectionAssert.AreEquivalent(expected, actual);
        }
コード例 #6
0
ファイル: QueryTests.cs プロジェクト: anthrax3/Pomona
        public void Select_WithClientServerSplit_CallingMethodOnlyAvailableToClient_IsSuccessful_UsingFirstProjection()
        {
            var expected =
                CritterEntities.Select(x => new ClientSideClass(x.Id, x.Name + "|" + SomeCrazyMethod(x.Name))).First();
            var actual =
                Client.Critters.Select(x => new ClientSideClass(x.Id, x.Name + "|" + SomeCrazyMethod(x.Name))).First();

            Assert.That(actual, Is.EqualTo(expected));
        }
コード例 #7
0
ファイル: QueryTests.cs プロジェクト: anthrax3/Pomona
        public void Select_WithClientServerSplit_UsingLocallyExecutedConcatMethod_IsSuccessful()
        {
            var expected =
                CritterEntities.Select(
                    x => new ClientSideClass(x.Id, x.Name.ToUpper() + "|" + SomeCrazyMethod(x.Name.ToLower()))).ToList();
            var actual =
                Client.Critters.Select(
                    x => new ClientSideClass(x.Id, x.Name.ToUpper() + "|" + SomeCrazyMethod(x.Name.ToLower()))).ToList();

            CollectionAssert.AreEquivalent(expected, actual);
        }
コード例 #8
0
        public void QueryCritter_SelectToTuple_ReturnsCorrectValues()
        {
            var expected = CritterEntities
                           .Select(x => new Tuple <int, string>(x.Id, x.Name))
                           .ToList();
            var actual =
                Client.Query <ICritter>()
                .Select(x => new Tuple <int, string>(x.Id, x.Name))
                .ToList();

            AssertSequenceEqualsAndCountIsGreaterThanZero(actual, expected);
        }
コード例 #9
0
ファイル: QueryTests.cs プロジェクト: anthrax3/Pomona
        public void Select_WithClientServerSplit_UsingServerExecutedLambdaPart_IsSuccessful()
        {
            var expected =
                CritterEntities.Select(
                    x =>
                    new ClientSideClass(x.Id + x.Subscriptions.Count(y => y.Sku != "xfiles"),
                                        x.Name.ToUpper() + "|" + SomeCrazyMethod(x.Name.ToLower()))).ToList();
            var actual =
                Client.Critters.Select(
                    x =>
                    new ClientSideClass(x.Id + x.Subscriptions.Count(y => y.Sku != "xfiles"),
                                        x.Name.ToUpper() + "|" + SomeCrazyMethod(x.Name.ToLower()))).ToList();

            CollectionAssert.AreEquivalent(expected, actual);
        }
コード例 #10
0
        public void QueryCritter_OrderByAfterSelect_ReturnsCorrectValues()
        {
            var expected =
                CritterEntities
                .Select(x => new { NameLength = x.Name.Length })
                .OrderBy(x => x.NameLength)
                .Take(10)
                .ToList();
            var actual =
                Client.Critters.Query()
                .Select(x => new { NameLength = x.Name.Length })
                .OrderBy(x => x.NameLength)
                .Take(10)
                .ToList();

            AssertSequenceEqualsAndCountIsGreaterThanZero(actual, expected);
        }
コード例 #11
0
        public void QueryCritter_WhereReferencedResourceEqualsALoadedResource_ReturnsCorrectValues()
        {
            var farmEntity   = CritterEntities.Select(x => x.Farm).First(x => x != null);
            var farmResource = Client.Farms.Get(farmEntity.Id);

            var expected =
                CritterEntities
                .Where(x => x.Farm == farmEntity)
                .Select(x => x.Id)
                .ToList();
            var actual =
                Client.Critters
                .Where(x => x.Farm == farmResource)
                .Select(x => x.Id)
                .ToList();

            AssertSequenceEqualsAndCountIsGreaterThanZero(actual, expected);
        }
コード例 #12
0
        public void QueryCritter_SelectThenWhereThenSelect_ReturnsCorrectValues()
        {
            var expected = CritterEntities
                           .Select(x => new { c = x, isHeavyArmed = x.Weapons.Count > 2, farmName = x.Farm.Name })
                           .Where(x => x.isHeavyArmed)
                           .Select(x => new { critterName = x.c.Name, x.farmName })
                           .Take(5)
                           .ToList();

            var actual = Client.Query <ICritter>()
                         .Select(x => new { c = x, isHeavyArmed = x.Weapons.Count > 2, farmName = x.Farm.Name })
                         .Where(x => x.isHeavyArmed)
                         .Select(x => new { critterName = x.c.Name, x.farmName })
                         .Take(5)
                         .ToList();

            AssertSequenceEqualsAndCountIsGreaterThanZero(actual, expected);
        }