コード例 #1
0
        public async void ShouldDeleteExam()
        {
            var client          = httpClientFactory.CreateClient();
            var httpCallHelper  = new HttpCallHelper(client);
            var dbContextHelper = new DbContextHelper(this.dbContextFactory);
            var tuple           = await httpCallHelper.CreateExam();

            var loggedUser1 = tuple.Item1;
            var examDto1    = tuple.Item3;

            tuple = await httpCallHelper.CreateExam();

            var loggedUser2   = tuple.Item1;
            var examDto2      = tuple.Item3;
            var link1         = $"exams/{examDto1.Id}";
            var link2         = $"exams/{examDto2.Id}";
            var linkNotExists = $"exams/{int.MaxValue}";

            var exam1 = await dbContextHelper.FindExamAsync(examDto1.Id);

            var exam2 = await dbContextHelper.FindExamAsync(examDto2.Id);

            AssertHelper.AssertExamNotDeleted(exam1);
            AssertHelper.AssertExamNotDeleted(exam2);

            //unauthorized
            await client.DeleteUnauthorized(link1);

            //not this users exam
            client.Authorize(loggedUser1.Token);
            await client.DeleteNotFound(link2);

            //not existing
            await client.DeleteNotFound(linkNotExists);

            //success
            var responseExam = await client.DeleteExamSucessfully(link1);

            Assert.Equal(responseExam.Id, examDto1.Id);
            exam1 = dbContextHelper.SelectExamFirstOrDefault(examDto1.Id);
            Assert.Null(exam1);

            exam1 = dbContextHelper.SelectExamIgnoreQueryFiltersTakeFirst(examDto1.Id);
            AssertHelper.AssertExamDeleted(exam1);
        }