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); }
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)); }
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)); }
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); }
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); }
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)); }
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); }
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); }
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); }
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); }
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); }
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); }