Example #1
0
        public static ProblemSubmit Create()
        {
            var submit = new ProblemSubmit();

            submit.Results.Add(new SubmitResult(submit));
            return(submit);
        }
        public void HidePassedTestsForAcceptedTest()
        {
            var submit = ProblemSubmit.Create();

            submit.ProblemId = 1;
            submit.UserId    = 1;
            var submits = new[] { new SubmitResult(submit)
                                  {
                                      Status = SubmitStatus.Accepted, PassedTests = 10
                                  } };

            _submitResultRepository.Stub(
                o => o.GetSubmits(Arg <ISpecification <SubmitResult> > .Is.Anything, Arg <int> .Is.Anything, Arg <int> .Is.Anything))
            .Return(submits);

            _taskRepository.Stub(o => o.GetTasks(Arg <long[]> .Is.Anything)).Return(new[] { new TaskName {
                                                                                                Id = 1, Name = "A+B"
                                                                                            } });

            _userRepository.Stub(o => o.GetUsers(Arg <long[]> .Is.Anything)).Return(new[] { new User {
                                                                                                Id = 1
                                                                                            } });

            var model = _service.GetSubmitQueue(1, 1, 1);

            Assert.That(model.Submits.Select(o => o.PassedTests), Is.All.Null);
        }
        public void SubmitSolution(long problemId, int selectedLanguage, HttpPostedFileBase file, UserInfo userInfo)
        {
            if (file == null)
            {
                throw new ArgumentNullException(nameof(file));
            }

            string sourceCode;

            using (var sr = new StreamReader(file.InputStream))
            {
                sourceCode = sr.ReadToEnd();
            }

            var submit = ProblemSubmit.Create();

            submit.ProblemId  = problemId;
            submit.LanguageId = selectedLanguage;
            submit.UserId     = userInfo.UserId;
            submit.FileName   = Path.GetFileName(file.FileName);
            submit.SourceCode = sourceCode;
            submit.UserHost   = userInfo.Host;
            submit.SessionId  = userInfo.SessionId;

            using (var unitOfWork = _factory.GetUnitOfWork())
            {
                var submitRepository = unitOfWork.SubmitRepository;
                submitRepository.Add(submit);
                unitOfWork.Commit();
            }
        }
        public void DequeueTest()
        {
            var  factory = _container.Resolve <IUnitOfWorkFactory>();
            long submitId;

            using (var uow = factory.GetUnitOfWork(true))
            {
                var submitRepository = uow.GetRepository <ISubmitRepository>();
                var submit           = ProblemSubmit.Create();
                submit.FileName   = "main.cpp";
                submit.LanguageId = 1;
                submit.ProblemId  = 1;
                submit.SourceCode = "123";
                submit.UserId     = 1;
                submitRepository.Add(submit);
                uow.Commit();
                submitId = submit.Id;
            }

            using (var uow = factory.GetUnitOfWork(true))
            {
                var submitResultRepository = uow.GetRepository <ISubmitResultRepository>();
                var submit = submitResultRepository.DequeueUnchecked();

                Assert.NotNull(submit);
                Assert.That(submit.Submit.Id, Is.EqualTo(submitId));
            }
        }