public void GetFieldValueReturnsDefaultObjectIfKeyNotFoundForValueType() { var dictionary = new Dictionary <string, JToken>(); var actual = (int)ProjectionExpressionVisitor.GetFieldValue(dictionary, "Any", typeof(int)); Assert.Equal(0, actual); }
public void GetFieldValueReturnsNullIfKeyNotFoundForReferenceType() { var dictionary = new Dictionary <string, JToken>(); var actual = (Sample)ProjectionExpressionVisitor.GetFieldValue(dictionary, "Any", typeof(Sample)); Assert.Null(actual); }
public void RebindCollectsSinglePropertyFieldName() { var source = new FakeQuery <Sample>(new FakeQueryProvider()).Select(s => s.Name); var hitParameter = Expression.Parameter(typeof(Hit)); var rebound = ProjectionExpressionVisitor.Rebind(hitParameter, "prefix", validMapping, source.Expression); Assert.Contains("prefix.name", rebound.FieldNames); Assert.Equal(1, rebound.FieldNames.Count()); }
public void RebindCollectsTupleCreateProjectionPropertiesFieldNames() { var source = new FakeQuery <Sample>(new FakeQueryProvider()).Select(s => Tuple.Create(s.Name, s.Id, ElasticFields.Score)); var hitParameter = Expression.Parameter(typeof(Hit)); var rebound = ProjectionExpressionVisitor.Rebind(hitParameter, "prefix", validMapping, source.Expression); Assert.Contains("prefix.name", rebound.FieldNames); Assert.Contains("prefix.id", rebound.FieldNames); Assert.Contains("_score", rebound.FieldNames); Assert.Equal(3, rebound.FieldNames.Count()); }
public void GetFieldValueReturnsTokenFromDictionaryIfKeyFound() { var expected = new Sample { Id = "T-900", Name = "Cameron" }; const string key = "Summer"; var dictionary = new Dictionary <string, JToken> { { key, JToken.FromObject(expected) } }; var actual = (Sample)ProjectionExpressionVisitor.GetFieldValue(dictionary, key, typeof(Sample)); Assert.Equal(expected.Id, actual.Id); Assert.Equal(expected.Name, actual.Name); }
public void Rebind_GuardClauses() { Assert.Throws <ArgumentNullException>(() => ProjectionExpressionVisitor.Rebind(null, "prefix", validMapping, Expression.Constant(1))); Assert.Throws <ArgumentNullException>(() => ProjectionExpressionVisitor.Rebind(validParameter, "prefix", null, Expression.Constant(1))); Assert.Throws <ArgumentNullException>(() => ProjectionExpressionVisitor.Rebind(validParameter, "prefix", validMapping, null)); }