Beispiel #1
0
        public async Task when_entity_is_loaded__many_to_many_is_loaded()
        {
            using (ManyToManyContext dbContext = new ManyToManyContext())
            {
                dbContext.AddRange(new[]
                {
                    new Role {
                        Name = "Role 1"
                    },
                    new Role {
                        Name = "Role 2"
                    }
                });
                dbContext.SaveChanges();

                dbContext.Add(new User
                {
                    Name = "Test Root"
                });
                dbContext.SaveChanges();

                dbContext.AddRange(new[]
                {
                    new UserRoles {
                        User = dbContext.User.First(), Role = dbContext.Roles.First()
                    },
                    new UserRoles {
                        User = dbContext.User.First(), Role = dbContext.Roles.Last()
                    }
                });
                dbContext.SaveChanges();

                IDetachedContext <ManyToManyContext> detachedContext = new DetachedContext <ManyToManyContext>(dbContext);

                User persisted = await detachedContext.Set <User>().LoadAsync(1);

                Assert.Equal(2, persisted.UserRoles.Count);
                Assert.Equal(2, persisted.Roles.Count);
                Assert.True(persisted.Roles.Any(r => r.Name == "Role 1"));
                Assert.True(persisted.Roles.Any(r => r.Name == "Role 2"));
            }
        }