Пример #1
0
        public static async Task CreateUniversity(TestContext _)
        {
            using (var context = new WarblerDbContext(Options))
            {
                var repo         = new SqlUniversityRepository(context);
                var nearbyResult = new NearByResult
                {
                    Name     = "Test",
                    Geometry = new Geometry {
                        Location = new Location(0.0, 0.0)
                    }
                };

                var templateService = new ChannelTemplateService(new SqlChannelTemplateRepository(context));
                await templateService.CreateDefaultTemplatesAsync();

                // Create a test university with default channels
                var testUniversity = await repo.CreateAsync(nearbyResult, await templateService.GetAsync());

                // Save a reference to one of the default channels and a new user
                General = testUniversity.Server.Channels.Single(ch => ch.Name == "general");
                Bob     = new User {
                    UserName = "******"
                };

                // Add a test user to it
                General.Memberships.Add(new Membership {
                    User = Bob
                });

                // Save it to the in-memory database for use in tests
                await repo.SaveAsync();
            }
        }
Пример #2
0
        public static async Task CreateUniversity(TestContext _)
        {
            using (var context = new WarblerDbContext(Options))
            {
                var repo         = new SqlUniversityRepository(context);
                var nearbyResult = new NearByResult
                {
                    Name     = "Test",
                    Geometry = new Geometry {
                        Location = new Location(0.0, 0.0)
                    }
                };
                var templateService = new ChannelTemplateService(new SqlChannelTemplateRepository(context));
                await templateService.CreateDefaultTemplatesAsync();

                // Create a test university with default channels
                var testUniversity = await repo.CreateAsync(nearbyResult, await templateService.GetAsync());

                Test = testUniversity;
                Bob  = new User {
                    UserName = "******"
                };
                // Save it to the in-memory database for use in tests
                await repo.SaveAsync();
            }
        }
Пример #3
0
 public async Task LookupAsync_Should_Fail_With_Unknown_PlaceId()
 {
     using (var context = new WarblerDbContext(Options))
     {
         var repo = new SqlUniversityRepository(context);
         await repo.LookupAsync("Test");
     }
 }
Пример #4
0
 public void AllQueryable_Should_Fail_With_Unknown_QueryDepth()
 {
     using (var context = new WarblerDbContext(Options))
     {
         var repo = new SqlUniversityRepository(context);
         repo.AllQueryable((QueryDepth)5);
     }
 }
Пример #5
0
        public async Task AllQueryable_University_Should_Not_Get_Servers()
        {
            await SetUpSampleUniversity();

            using (var context = new WarblerDbContext(Options))
            {
                var repo         = new SqlUniversityRepository(context);
                var universities = repo
                                   .AllQueryable(QueryDepth.University)
                                   .ToList();

                Assert.IsNull(universities.First().Server);
            }
        }
Пример #6
0
        public async Task AllQueryable_Message_Should_Get_Everything()
        {
            using (var context = new WarblerDbContext(Options))
            {
                var repo         = new SqlUniversityRepository(context);
                var testUni      = new UniversityService(repo);
                var universities = await testUni.GetAllAsync();

                Assert.IsNotNull(universities.First());
                Assert.IsNotNull(universities.First().Server);
                Assert.IsNotNull(universities.First().Server.Channels);
                Assert.IsNotNull(universities.First().Server.Channels.First().Users);
                Assert.IsNotNull(universities.First().Server.Channels.First().Messages);
            }
        }
Пример #7
0
        public async Task AllQueryable_User_Should_Not_Get_Messages()
        {
            await SetUpSampleUniversity();

            using (var context = new WarblerDbContext(Options))
            {
                var repo         = new SqlUniversityRepository(context);
                var universities = repo
                                   .AllQueryable(QueryDepth.User)
                                   .ToList();
                var channel = universities.First().Server.Channels.First();

                Assert.IsNotNull(channel.Users);
                Assert.IsNull(channel.Messages);
            }
        }
Пример #8
0
        public async Task SaveASync_Should_Save_Changes_On_Context()
        {
            var saveChangesCalled = false;

            // Create a fake WarblerDbContext
            var mockContext = new Mock <WarblerDbContext>(Options);

            // Watch its SaveChangesAsync() method to see if it gets called by the repo
            mockContext.Setup(x => x.SaveChangesAsync(default(CancellationToken)))
            .Callback(() => saveChangesCalled = true)
            .ReturnsAsync(0);

            // Attach it to the repo and call SaveAsync()
            var repo = new SqlUniversityRepository(mockContext.Object);
            await repo.SaveAsync();

            Assert.IsTrue(saveChangesCalled);
        }
Пример #9
0
        public async Task JoinAsync_Should_Have_Users_Join_All_Channels_In_A_University()
        {
            using (var context = new WarblerDbContext(Options))
            {
                var repo    = new SqlUniversityRepository(context);
                var test    = new UniversityService(repo);
                var newUser = new User {
                    UserName = "******"
                };
                var testUni = await repo.LookupAsync
                                  (context.Universities.FirstOrDefault
                                  (u => u.Name == "Test").PlaceId);

                //Assert.AreEqual(2, context.Universities.Count());
                await test.JoinAsync(newUser, testUni);

                var testUser = context.Users.FirstOrDefault(u => u.UserName == "Bill");
                Assert.AreEqual(testUni.Server.Channels.Count(), testUser.Channels.Count());
            }
        }
Пример #10
0
        private async Task SetUpSampleUniversity()
        {
            using (var context = new WarblerDbContext(Options))
            {
                var repo         = new SqlUniversityRepository(context);
                var nearbyResult = new NearByResult
                {
                    Name     = "Test",
                    Geometry = new Geometry {
                        Location = new Location(0.0, 0.0)
                    }
                };

                var templateService = new ChannelTemplateService(new SqlChannelTemplateRepository(context));
                await templateService.CreateDefaultTemplatesAsync();

                // Create a test university with default channels
                await repo.CreateAsync(nearbyResult, await templateService.GetAsync());
            }
        }
Пример #11
0
        public async Task GetOrCreateAsync_Should_Create_A_New_University()
        {
            using (var context = new WarblerDbContext(Options))
            {
                var repo         = new SqlUniversityRepository(context);
                var test         = new UniversityService(repo);
                var nearbyResult = new NearByResult
                {
                    Name     = "NewUni",
                    Geometry = new Geometry {
                        Location = new Location(1.0, 1.0)
                    }
                };

                var templateService = new ChannelTemplateService(new SqlChannelTemplateRepository(context));
                await templateService.CreateDefaultTemplatesAsync();

                var uniTest = await test.GetOrCreateAsync(nearbyResult, await templateService.GetAsync());

                //Assert.AreEqual(2, context.Universities.Count());
                Assert.AreEqual("NewUni", uniTest.Name);
            }
        }