示例#1
0
        private async Task <Post> CreateEntitiesAsync(TestDatabaseContext testDatabase)
        {
            using (var databaseContext = testDatabase.CreateContext())
            {
                var random = new Random();
                await databaseContext.CreateTestEntitiesAsync(CreatorId.Value, ChannelId.Value, QueueId.Value);

                await databaseContext.CreateTestFileWithExistingUserAsync(CreatorId.Value, FileId.Value);

                var post = PostTests.UniqueFileOrImage(random);
                post.Id             = PostId.Value;
                post.ChannelId      = ChannelId.Value;
                post.QueueId        = QueueId.Value;
                post.PreviewImageId = FileId.Value;
                post.CreationDate   = new SqlDateTime(post.CreationDate).Value;
                post.LiveDate       = new SqlDateTime(post.LiveDate).Value;
                await databaseContext.Database.Connection.InsertAsync(post);

                await databaseContext.Database.Connection.InsertAsync(new PostFile(PostId.Value, FileId.Value));

                await databaseContext.CreateTestUserAsync(UserId.Value, random);

                var comment = CommentTests.Unique(random);
                comment.Id     = CommentId.Value;
                comment.PostId = PostId.Value;
                comment.UserId = UserId.Value;
                await databaseContext.Database.Connection.InsertAsync(comment);

                var like = LikeTests.Unique(random);
                like.PostId = PostId.Value;
                like.UserId = UserId.Value;
                await databaseContext.Database.Connection.InsertAsync(like);

                await databaseContext.CreateTestChannelSubscriptionWithExistingReferences(CreatorId.Value, ChannelId.Value);

                var weeklyReleaseTimes = WeeklyReleaseTimeTests.GenerateSortedWeeklyReleaseTimes(QueueId.Value, 3);
                await databaseContext.Database.Connection.InsertAsync(weeklyReleaseTimes);

                return(post);
            }
        }
        private async Task CreateChannelsAndQueuesAsync(TestDatabaseContext testDatabase)
        {
            var random = new Random();

            var channel1 = ChannelTests.UniqueEntity(random);

            channel1.Id = ChannelId1.Value;
            ConfigureChannel(channel1);

            var channel2 = ChannelTests.UniqueEntity(random);

            channel2.Id = ChannelId2.Value;
            ConfigureChannel(channel2);

            var channel3 = ChannelTests.UniqueEntity(random);

            channel3.Id = ChannelId3.Value;
            ConfigureChannel(channel3);

            var queue1 = QueueTests.UniqueEntity(random);

            queue1.Id = QueueId1.Value;
            ConfigureQueue(queue1);

            var queue2 = QueueTests.UniqueEntity(random);

            queue2.Id = QueueId2.Value;
            ConfigureQueue(queue2);

            var queue3 = QueueTests.UniqueEntity(random);

            queue3.Id = QueueId3.Value;
            ConfigureQueue(queue3);

            var wrt1  = WeeklyReleaseTimeTests.UniqueEntity(random, queue1.Id);
            var wrt2a = WeeklyReleaseTimeTests.UniqueEntity(random, queue2.Id);
            var wrt2b = WeeklyReleaseTimeTests.UniqueEntity(random, queue2.Id);
            var wrt3a = WeeklyReleaseTimeTests.UniqueEntity(random, queue3.Id);
            var wrt3b = WeeklyReleaseTimeTests.UniqueEntity(random, queue3.Id);
            var wrt3c = WeeklyReleaseTimeTests.UniqueEntity(random, queue3.Id);

            using (var connection = testDatabase.CreateConnection())
            {
                await connection.InsertAsync(channel1);

                await connection.InsertAsync(channel2);

                await connection.InsertAsync(channel3);

                await connection.InsertAsync(queue1);

                await connection.InsertAsync(queue2);

                await connection.InsertAsync(queue3);

                await connection.InsertAsync(wrt1);

                await connection.InsertAsync(wrt2a);

                await connection.InsertAsync(wrt2b);

                await connection.InsertAsync(wrt3a);

                await connection.InsertAsync(wrt3b);

                await connection.InsertAsync(wrt3c);
            }
        }