public void Prepare_returns_a_new_instance() { var objectQueryExecutionPlanFactory = new ObjectQueryExecutionPlanFactory( Common.Internal.Materialization.MockHelper.CreateTranslator <object>()); var edmItemCollection = new EdmItemCollection(); var fakeSqlProviderManifest = FakeSqlProviderServices.Instance.GetProviderManifest("2008"); var storeItemCollection = new StoreItemCollection(FakeSqlProviderFactory.Instance, fakeSqlProviderManifest, "System.Data.SqlClient", "2008"); var mappingItemCollection = new StorageMappingItemCollection(edmItemCollection, storeItemCollection, Enumerable.Empty <XmlReader>()); var metadataWorkspace = new MetadataWorkspace( () => edmItemCollection, () => storeItemCollection, () => mappingItemCollection); var fakeSqlConnection = new FakeSqlConnection(); fakeSqlConnection.ConnectionString = "foo"; var entityConnection = new EntityConnection(metadataWorkspace, fakeSqlConnection, false); var objectContext = new ObjectContext(entityConnection); var dbExpression = new DbNullExpression(TypeUsage.Create(fakeSqlProviderManifest.GetStoreTypes().First())); var dbQueryCommandTree = new DbQueryCommandTree( metadataWorkspace, DataSpace.CSpace, dbExpression, validate: false, useDatabaseNullSemantics: true); var parameters = new List <Tuple <ObjectParameter, QueryParameterExpression> >(); var objectQueryExecutionPlan = objectQueryExecutionPlanFactory.Prepare( objectContext, dbQueryCommandTree, typeof(object), MergeOption.NoTracking, false, new Span(), parameters, aliasGenerator: null); Assert.NotNull(objectQueryExecutionPlan); }
public void Can_get_metadata_with_minimal_DbConnection_implementation() { // Required for use with MVC Scaffolding that uses Microsoft.VisualStudio.Web.Mvc.Scaffolding.BuiltIn.ScaffoldingDbConnection // which is a very minimal implementation of DbConnection. using (var connection = new FakeSqlConnection { ConnectionString = "" }) { using (var context = new EmptyContext(connection)) { var metadata = ((IObjectContextAdapter)context).ObjectContext.MetadataWorkspace; Assert.NotNull(metadata); } } }
public FakeSqlCommand(string query, FakeSqlConnection connection) { }
public IEnumerable <Employee> GetEmployees(EmployeeFilterType employeeFilterType, string filter, FakeSqlConnection connection) { if (employeeFilterType == EmployeeFilterType.ByName && filter == null) { throw new ArgumentNullException("filter"); } string query = "select * from employee, employee_role inner join employee.Id == employee_role.EmployeeId"; List <Employee> result = new List <Employee>(); using (FakeSqlCommand sqlCommand = new FakeSqlCommand(query, connection)) { FakeSqlDataReader reader; int retryCount = 5; while (true) { try { reader = sqlCommand.ExecuteReader(); break; } catch (Exception) { if (retryCount-- == 0) { throw; } } } while (reader.Read()) { int id = reader.GetInt32(EmployeeIdColumnIndex); string name = reader.GetString(EmployeeNameColumnIndex); int age = reader.GetInt32(EmployeeAgeColumnIndex); bool isSalaried = reader.GetBoolean(EmployeeIsSalariedColumnIndex); switch (employeeFilterType) { case EmployeeFilterType.ByName: if (!name.StartsWith(filter)) { continue; } break; case EmployeeFilterType.ExemptOnly: if (age < 40 || !isSalaried) { continue; } break; } result.Add(new Employee { Name = name, Id = id, Age = age, IsSalaried = isSalaried }); } } return(result); }