public void Get_migrations_query() { using (var context = new Context()) { var historyRepository = new HistoryRepository(context.Configuration); using (var historyContext = historyRepository.CreateHistoryContext()) { var query = historyRepository.GetMigrationsQuery(historyContext); var expression = (MethodCallExpression)query.Expression; Assert.Equal("Select", expression.Method.Name); Assert.Equal("h => new MigrationMetadata(h.MigrationId)", expression.Arguments[1].ToString()); expression = (MethodCallExpression)expression.Arguments[0]; Assert.Equal("OrderBy", expression.Method.Name); Assert.Equal("h => h.MigrationId", expression.Arguments[1].ToString()); expression = (MethodCallExpression)expression.Arguments[0]; Assert.Equal("Where", expression.Method.Name); Assert.Equal( "h => (h.ContextKey == value(Microsoft.Data.Entity.Migrations.Infrastructure.HistoryRepository).GetContextKey())", expression.Arguments[1].ToString()); var queryableType = expression.Arguments[0].Type; Assert.True(queryableType.IsGenericType); Assert.Equal("EntityQueryable", queryableType.Name.Remove(queryableType.Name.IndexOf("`", StringComparison.Ordinal))); Assert.Equal(1, queryableType.GenericTypeArguments.Length); Assert.Equal("HistoryRow", queryableType.GenericTypeArguments[0].Name); } } }