public async Task Connection_parent_child() { var query = @" { parentEntitiesConnection(first:2, after: '0') { totalCount edges { cursor node { property children { property } } } items { property children { property } } } } "; var entity1 = new ParentEntity { Property = "Value1" }; var entity2 = new ChildEntity { Property = "Value2" }; var entity3 = new ChildEntity { Property = "Value3" }; entity1.Children.Add(entity2); entity1.Children.Add(entity3); var entity4 = new ParentEntity { Property = "Value4" }; var entity5 = new ChildEntity { Property = "Value5" }; entity4.Children.Add(entity5); await using var database = await sqlInstance.Build(); var result = await RunQuery(database, query, null, null, entity1, entity2, entity3, entity4, entity5); ObjectApprover.Verify(result); }
public void Overwrites() { Console.WriteLine("from Console"); Debug.WriteLine("from Debug"); Trace.WriteLine("from Trace"); var logs = XunitLogging.Flush(); ObjectApprover.Verify(logs); }
public void Info() { LocalDbApi.CreateAndStart("InfoTest"); var info = LocalDbApi.GetInstance("InfoTest"); ObjectApprover.Verify(info); LocalDbApi.StopAndDelete("InfoTest"); Assert.False(LocalDbApi.GetInstance("InfoTest").Exists); }
public void Write_lines() { Write("part1"); Write(" part2"); WriteLine(); WriteLine("part3"); WriteLine("ignored"); ObjectApprover.Verify(Logs); }
public async Task SyncSingle() { using (var database = await BuildContext()) using (database.Context.FilterResults(BuildFilters())) { var result = database.Context.ParentEntities.Include(x => x.Children).Single(); ObjectApprover.Verify(result); } }
public void Write_lines() { XunitLogging.Write("part1"); XunitLogging.Write(" part2"); XunitLogging.WriteLine(); XunitLogging.WriteLine("part3"); var logs = XunitLogging.Flush(); ObjectApprover.Verify(logs); }
public async Task Queryable(int?first, int?after, int?last, int?before) { var fieldContext = new ResolveFieldContext <string>(); await using var database = await sqlInstance.BuildWithRollback(); var entities = database.Context.Entities; var connection = await ConnectionConverter.ApplyConnectionContext(entities, first, after, last, before, fieldContext, new Filters()); ObjectApprover.Verify(connection); }
static void Verify(TestResult result) { ObjectApprover.Verify(new { result.Errors, result.Messages, result.Warnings, result.AssemblyPath, result.Assembly.FullName }, ScrubCurrentDirectory); }
public async Task NoFileAndNoInstance() { LocalDbApi.StopAndDelete("NoFileAndNoInstance"); DirectoryFinder.Delete("NoFileAndNoInstance"); var wrapper = new Wrapper("NoFileAndNoInstance", DirectoryFinder.Find("NoFileAndNoInstance")); wrapper.Start(timestamp, TestDbBuilder.CreateTable); await wrapper.CreateDatabaseFromTemplate("Simple"); ObjectApprover.Verify(await wrapper.ReadDatabaseState("Simple")); LocalDbApi.StopInstance("NoFileAndNoInstance"); }
public async Task Child_parent() { var query = @" { childEntities { property parent { property } } }"; var entity1 = new ParentEntity { Property = "Value1" }; var entity2 = new ChildEntity { Property = "Value2", Parent = entity1 }; var entity3 = new ChildEntity { Property = "Value3", Parent = entity1 }; entity1.Children.Add(entity2); entity1.Children.Add(entity3); var entity4 = new ParentEntity { Property = "Value4" }; var entity5 = new ChildEntity { Property = "Value5", Parent = entity4 }; entity4.Children.Add(entity5); using (var database = await sqlInstance.Build()) { var result = await RunQuery(database, query, null, null, entity1, entity2, entity3, entity4, entity5); ObjectApprover.Verify(result); } }
public async Task Async() { await Task.Delay(1); XunitLogging.WriteLine("part1"); await Task.Delay(1).ConfigureAwait(false); XunitLogging.WriteLine("part2"); await Task.Delay(1).ConfigureAwait(false); var logs = XunitLogging.Flush(); ObjectApprover.Verify(logs); }
public async Task SingleParent_Child() { var query = @" { parentEntity(id: ""00000000-0000-0000-0000-000000000001"") { property children { property } } }"; var entity1 = new ParentEntity { Id = Guid.Parse("00000000-0000-0000-0000-000000000001"), Property = "Value1" }; var entity2 = new ChildEntity { Property = "Value2", Parent = entity1 }; var entity3 = new ChildEntity { Property = "Value3", Parent = entity1 }; entity1.Children.Add(entity2); entity1.Children.Add(entity3); var entity4 = new ParentEntity { Property = "Value4" }; var entity5 = new ChildEntity { Property = "Value5", Parent = entity4 }; entity4.Children.Add(entity5); using (var database = await sqlInstance.Build()) { var result = await RunQuery(database, query, null, null, entity1, entity2, entity3, entity4, entity5); ObjectApprover.Verify(result); } }
public async Task Connection_parent_child_Filtered() { var query = @" { parentEntitiesConnectionFiltered { totalCount edges { cursor node { property children { property } } } items { property children { property } } } } "; var entity1 = new FilterParentEntity { Property = "Value1" }; var entity2 = new FilterChildEntity { Property = "Ignore" }; var entity3 = new FilterChildEntity { Property = "Value3" }; entity1.Children.Add(entity2); entity1.Children.Add(entity3); using (var database = await sqlInstance.Build()) { var result = await RunQuery(database, query, null, BuildFilters(), entity1, entity2, entity3); ObjectApprover.Verify(result); } }
public async Task SingleNullable_NotFound() { var query = @" { parentEntityNullable(id: ""00000000-0000-0000-0000-000000000001"") { property } }"; using var database = await sqlInstance.Build(); var result = await RunQuery(database, query, null, null); ObjectApprover.Verify(result); }
public async Task Single_NotFound() { var query = @" { parentEntity(id: ""00000000-0000-0000-0000-000000000001"") { property } }"; using var database = await sqlInstance.Build(); var error = await Assert.ThrowsAsync <ExecutionError>(() => RunQuery(database, query, null, null)); ObjectApprover.Verify(error.Message); }
public async Task Where_with_nullable_properties1() { var query = "{ withNullableEntities (where: {path: 'Nullable', comparison: 'equal'}){ id } }"; var entity1 = new WithNullableEntity(); var entity2 = new WithNullableEntity { Nullable = 10 }; using var database = await sqlInstance.Build(); var result = await RunQuery(database, query, null, null, entity1, entity2); ObjectApprover.Verify(result); }
public async Task With_null_navigation_property() { var query = @" { childEntities(where: {path: 'ParentId', comparison: 'equal', value: '00000000-0000-0000-0000-000000000001'}) { property parent { property } } }"; var entity1 = new ParentEntity { Id = Guid.Parse("00000000-0000-0000-0000-000000000001"), Property = "Value1" }; var entity2 = new ChildEntity { Property = "Value2", Parent = entity1 }; var entity3 = new ChildEntity { Property = "Value3", Parent = entity1 }; entity1.Children.Add(entity2); entity1.Children.Add(entity3); var entity5 = new ChildEntity { Property = "Value5" }; using (var database = await sqlInstance.Build()) { var result = await RunQuery(database, query, null, null, entity1, entity2, entity3, entity5); ObjectApprover.Verify(result); } }
public async Task Where_null_comparison_value() { var query = "{ parentEntities (where: {path: 'Property', comparison: 'equal'}){ id } }"; var entity1 = new ParentEntity { Property = null }; var entity2 = new ParentEntity { Property = "Value2" }; using var database = await sqlInstance.Build(); var result = await RunQuery(database, query, null, null, entity1, entity2); ObjectApprover.Verify(result); }
static void Verify <T>(List <LogEventEx> logEvents) { var logsForTarget = logEvents.LogsForType <T>().ToList(); var nsbVersion = FileVersionInfo.GetVersionInfo(typeof(Endpoint).Assembly.Location); var nsbVersionString = $"{nsbVersion.FileMajorPart}.{nsbVersion.FileMinorPart}.{nsbVersion.FileBuildPart}"; ObjectApprover.Verify( new { logsForTarget, logsForNsbSerilog = logEvents.LogsForNsbSerilog().ToList(), logsWithExceptions = logEvents.LogsWithExceptions().ToList() }, jsonSerializerSettings: null, scrubber: s => s .Replace(Environment.MachineName, "MachineName") .Replace(nsbVersionString, "NsbVersion") .RemoveLinesContaining("StackTraceString")); }
public async Task Null_on_nested() { var query = @" { level1Entities(where: {path: 'Level2Entity.Level3EntityId', comparison: 'equal', value: '00000000-0000-0000-0000-000000000003'}) { level2Entity { level3Entity { property } } } }"; var level3a = new Level3Entity { Id = Guid.Parse("00000000-0000-0000-0000-000000000003"), Property = "Valuea" }; var level2a = new Level2Entity { Level3Entity = level3a }; var level1a = new Level1Entity { Level2Entity = level2a }; var level2b = new Level2Entity(); var level1b = new Level1Entity { Level2Entity = level2b }; using (var database = await sqlInstance.Build()) { var result = await RunQuery(database, query, null, null, level1b, level2b, level1a, level2a, level3a); ObjectApprover.Verify(result); } }
public void Null() { XunitLogging.WriteLine("XunitLogger.WriteLine"); XunitLogging.WriteLine(); XunitLogging.WriteLine("Console.WriteLine(null)"); #pragma warning disable CS8600 // Converting null literal or possible null value to non-nullable type. Console.WriteLine((string)null); #pragma warning restore CS8600 // Converting null literal or possible null value to non-nullable type. XunitLogging.WriteLine("Debug.WriteLine(null)"); Debug.WriteLine(null); XunitLogging.WriteLine("Debug.Write(null)"); Debug.Write(null); XunitLogging.WriteLine("Trace.WriteLine(null)"); Trace.WriteLine(null); XunitLogging.WriteLine("Trace.Write(null)"); Trace.Write(null); var logs = XunitLogging.Flush(); ObjectApprover.Verify(logs); }
public void Counters() { var context = XunitLogging.Context; var foo = new { int1 = context.NextInt(), int2 = context.NextInt(), uint1 = context.NextUInt(), uint2 = context.NextUInt(), long1 = context.NextLong(), long2 = context.NextLong(), ulong1 = context.NextULong(), ulong2 = context.NextULong(), guid1 = context.NextGuid(), guid2 = context.NextGuid(), }; ObjectApprover.Verify(foo); }
public void ValidPropsFromBase() { var moduleDefinition = ModuleDefinition.CreateModule("Foo", ModuleKind.Dll); var resolver = new MockAssemblyResolver(); var innerWeaver = BuildInnerWeaver(moduleDefinition, resolver); innerWeaver.SplitUpReferences(); var weaverEntry = new WeaverEntry { Element = "<foo/>", AssemblyPath = @"c:\FakePath\Assembly.dll" }; var moduleWeaver = new ValidFromBaseModuleWeaver(); innerWeaver.SetProperties(weaverEntry, moduleWeaver); SerializerBuilder.IgnoreMembersWithType <ModuleDefinition>(); ObjectApprover.Verify(moduleWeaver); }
public async Task MisNamedQuery() { var query = @" { misNamed { misNamedChildren { id } } }"; var entity1 = new WithMisNamedQueryParentEntity(); var entity2 = new WithMisNamedQueryChildEntity { Parent = entity1 }; var entity3 = new WithMisNamedQueryChildEntity { Parent = entity1 }; entity1.Children.Add(entity2); entity1.Children.Add(entity3); var entity4 = new WithMisNamedQueryParentEntity(); var entity5 = new WithMisNamedQueryChildEntity { Parent = entity4 }; entity4.Children.Add(entity5); using (var database = await sqlInstance.Build()) { var result = await RunQuery(database, query, null, null, entity1, entity2, entity3, entity4, entity5); ObjectApprover.Verify(result); } }
public async Task RecreateWithOpenConnection() { LocalDbApi.StopAndDelete("RecreateWithOpenConnection"); DirectoryFinder.Delete("RecreateWithOpenConnection"); var wrapper = new Wrapper("RecreateWithOpenConnection", DirectoryFinder.Find("RecreateWithOpenConnection")); wrapper.Start(timestamp, TestDbBuilder.CreateTable); var connectionString = await wrapper.CreateDatabaseFromTemplate("Simple"); using (var connection = new SqlConnection(connectionString)) { await connection.OpenAsync(); wrapper = new Wrapper("RecreateWithOpenConnection", DirectoryFinder.Find("RecreateWithOpenConnection")); wrapper.Start(timestamp, TestDbBuilder.CreateTable); await wrapper.CreateDatabaseFromTemplate("Simple"); } ObjectApprover.Verify(await wrapper.ReadDatabaseState("Simple")); LocalDbApi.StopInstance("RecreateWithOpenConnection"); }
public async Task Child_filtered() { var query = @" { parentEntitiesFiltered { property children { property } } }"; var entity1 = new FilterParentEntity { Property = "Value1" }; var entity2 = new FilterChildEntity { Property = "Ignore", Parent = entity1 }; var entity3 = new FilterChildEntity { Property = "Value3", Parent = entity1 }; entity1.Children.Add(entity2); entity1.Children.Add(entity3); using (var database = await sqlInstance.Build()) { var result = await RunQuery(database, query, null, BuildFilters(), entity1, entity2, entity3); ObjectApprover.Verify(result); } }
public async Task DeleteDatabaseWithOpenConnection() { var connection = await instance.CreateDatabaseFromTemplate("ToDelete"); using (var sqlConnection = new SqlConnection(connection)) { await sqlConnection.OpenAsync(); await instance.DeleteDatabase("ToDelete"); var deletedState = await instance.ReadDatabaseState("ToDelete"); await instance.CreateDatabaseFromTemplate("ToDelete"); var createdState = await instance.ReadDatabaseState("ToDelete"); ObjectApprover.Verify(new { deletedState, createdState }); } }
public async Task Multiple_nested() { var query = @" { level1Entities { level2Entity { level3Entity { property } } } }"; var level3 = new Level3Entity { Property = "Value" }; var level2 = new Level2Entity { Level3Entity = level3 }; var level1 = new Level1Entity { Level2Entity = level2 }; using (var database = await sqlInstance.Build()) { var result = await RunQuery(database, query, null, null, level1, level2, level3); ObjectApprover.Verify(result); } }
public async Task Where_multiple() { var query = @" { parentEntities (where: [ {path: 'Property', comparison: 'startsWith"", value: 'Valu'} {path: 'Property', comparison: 'endsWith"", value: 'ue3'} ] ) { property } }"; var entity1 = new ParentEntity { Property = "Value1" }; var entity2 = new ParentEntity { Property = "Value2" }; var entity3 = new ParentEntity { Property = "Value3" }; using (var database = await sqlInstance.Build()) { var result = await RunQuery(database, query, null, null, entity1, entity2, entity3); ObjectApprover.Verify(result); } }
public async Task Run() { GraphTypeTypeRegistry.Register <Entity1, Entity1Graph>(); GraphTypeTypeRegistry.Register <Entity2, Entity2Graph>(); var sqlInstance1 = new SqlInstance <DbContext1>( constructInstance: builder => new DbContext1(builder.Options)); var sqlInstance2 = new SqlInstance <DbContext2>( constructInstance: builder => new DbContext2(builder.Options)); var query = @" { entity1 { property }, entity2 { property } }"; var entity1 = new Entity1 { Property = "the entity1" }; var entity2 = new Entity2 { Property = "the entity2" }; var sqlDatabase1 = await sqlInstance1.Build(); var sqlDatabase2 = await sqlInstance2.Build(); await using (var dbContext = sqlDatabase1.NewDbContext()) { dbContext.AddRange(entity1); await dbContext.SaveChangesAsync(); } await using (var dbContext = sqlDatabase2.NewDbContext()) { dbContext.AddRange(entity2); await dbContext.SaveChangesAsync(); } await using var dbContext1 = sqlDatabase1.NewDbContext(); await using var dbContext2 = sqlDatabase2.NewDbContext(); var services = new ServiceCollection(); services.AddSingleton <MultiContextQuery>(); services.AddSingleton <Entity1Graph>(); services.AddSingleton <Entity2Graph>(); services.AddSingleton(dbContext1); services.AddSingleton(dbContext2); #region RegisterMultipleInContainer EfGraphQLConventions.RegisterInContainer( services, userContext => ((UserContext)userContext).DbContext1); EfGraphQLConventions.RegisterInContainer( services, userContext => ((UserContext)userContext).DbContext2); #endregion await using var provider = services.BuildServiceProvider(); using var schema = new MultiContextSchema(new FuncDependencyResolver(provider.GetRequiredService)); var documentExecuter = new EfDocumentExecuter(); #region MultiExecutionOptions var executionOptions = new ExecutionOptions { Schema = schema, Query = query, UserContext = new UserContext(dbContext1, dbContext2) }; #endregion var executionResult = await documentExecuter.ExecuteWithErrorCheck(executionOptions); ObjectApprover.Verify(executionResult.Data); }