Ejemplo n.º 1
0
        public void Call_Commit_ToVerify_DataSave()
        {
            // Arrange
            var submisionsRepoFake = new Mock <IEfRepository <Submission> >();
            var challengeRepoFake  = new Mock <IEfRepository <Challenge> >();
            var efDataFake         = new Mock <IEfData>();
            var timeFake           = new Mock <ITimeProvider>();
            var mapperFake         = new Mock <IMappingProvider>();
            var userFake           = new Mock <User>();

            var service = new SubmissionsService(submisionsRepoFake.Object, challengeRepoFake.Object, efDataFake.Object,
                                                 timeFake.Object, mapperFake.Object);

            var challengeFake = new Mock <Challenge>();

            challengeRepoFake.Setup(x => x.GetById(It.IsAny <Guid>())).Returns(challengeFake.Object);

            efDataFake.Setup(x => x.Commit()).Verifiable();


            // Act
            service.Create(userFake.Object, It.IsAny <Guid>(), "sourceCode");

            // Assert
            efDataFake.Verify(x => x.Commit(), Times.Once);
        }
Ejemplo n.º 2
0
        public void Call_SubmissionsRepositoryUpdate_WithUpdatedObject()
        {
            // Arrange
            var submisionsRepoFake = new Mock <IEfRepository <Submission> >();
            var challengeRepoFake  = new Mock <IEfRepository <Challenge> >();
            var efDataFake         = new Mock <IEfData>();
            var timeFake           = new Mock <ITimeProvider>();
            var mapperFake         = new Mock <IMappingProvider>();
            var userFake           = new Mock <User>();

            var service = new SubmissionsService(submisionsRepoFake.Object, challengeRepoFake.Object, efDataFake.Object,
                                                 timeFake.Object, mapperFake.Object);

            var submissionFake = new Mock <Submission>();

            submisionsRepoFake.Setup(x => x.GetById(It.IsAny <Guid>())).Returns(submissionFake.Object);

            Submission passedSubmission = null;

            submisionsRepoFake.Setup(x => x.Update(It.IsAny <Submission>()))
            .Callback <Submission>(x => passedSubmission = x);

            // Act
            service.RunSubmission(It.IsAny <Guid>());

            // Assert
            Assert.IsTrue(passedSubmission.IsRun);
        }
Ejemplo n.º 3
0
        public void Call_ChallengeRepositoryGetById_WithCorrectParam()
        {
            // Arrange
            var submisionsRepo    = new Mock <IEfRepository <Submission> >();
            var challengeRepoFake = new Mock <IEfRepository <Challenge> >();
            var efDataFake        = new Mock <IEfData>();
            var timeFake          = new Mock <ITimeProvider>();
            var mapperFake        = new Mock <IMappingProvider>();

            var service = new SubmissionsService(submisionsRepo.Object, challengeRepoFake.Object, efDataFake.Object,
                                                 timeFake.Object, mapperFake.Object);

            Assert.Throws <ArgumentNullException>(() => service.Create(null, It.IsAny <Guid>(), It.IsAny <string>()));
        }
Ejemplo n.º 4
0
        public void ThrowsArgumentException_When_AChallengeWithThePassedId_IsNotFound()
        {
            // Arrange
            var submisionsRepo    = new Mock <IEfRepository <Submission> >();
            var challengeRepoFake = new Mock <IEfRepository <Challenge> >();
            var efDataFake        = new Mock <IEfData>();
            var timeFake          = new Mock <ITimeProvider>();
            var mapperFake        = new Mock <IMappingProvider>();

            var service = new SubmissionsService(submisionsRepo.Object, challengeRepoFake.Object, efDataFake.Object,
                                                 timeFake.Object, mapperFake.Object);

            var       userFake  = new Mock <User>();
            Challenge challenge = null;

            challengeRepoFake.Setup(x => x.GetById(It.IsAny <Guid>())).Returns(challenge);

            // Act & Assert
            Assert.Throws <ArgumentException>(() => service.Create(userFake.Object, It.IsAny <Guid>(), "sourceCode"));
        }
Ejemplo n.º 5
0
        public void Call_MapperProjectTo()
        {
            // Arrange
            var submisionsRepoFake = new Mock <IEfRepository <Submission> >();
            var challengeRepoFake  = new Mock <IEfRepository <Challenge> >();
            var efDataFake         = new Mock <IEfData>();
            var timeFake           = new Mock <ITimeProvider>();
            var mapperFake         = new Mock <IMappingProvider>();
            var userFake           = new Mock <User>();

            var service = new SubmissionsService(submisionsRepoFake.Object, challengeRepoFake.Object, efDataFake.Object,
                                                 timeFake.Object, mapperFake.Object);

            var submissions = new List <Submission>().AsQueryable <Submission>();

            mapperFake.Setup(x => x.ProjectTo <Submission, object>(submissions)).Verifiable();

            // Act
            service.GetUserSubmissionByChallenge <object>(It.IsAny <string>(), It.IsAny <string>());

            // Assert
            mapperFake.Verify(x => x.ProjectTo <Submission, object>(submissions), Times.AtLeastOnce);
        }
Ejemplo n.º 6
0
        public void Call_SubmissionsRepositoryAdd_WithCorrectlyCreatedObject()
        {
            // Arrange
            var submisionsRepoFake = new Mock <IEfRepository <Submission> >();
            var challengeRepoFake  = new Mock <IEfRepository <Challenge> >();
            var efDataFake         = new Mock <IEfData>();
            var timeFake           = new Mock <ITimeProvider>();
            var mapperFake         = new Mock <IMappingProvider>();

            var service = new SubmissionsService(submisionsRepoFake.Object, challengeRepoFake.Object, efDataFake.Object,
                                                 timeFake.Object, mapperFake.Object);

            var challengeFake = new Mock <Challenge>();

            challengeRepoFake.Setup(x => x.GetById(It.IsAny <Guid>())).Returns(challengeFake.Object);
            Submission passedSubmission = null;

            submisionsRepoFake.Setup(x => x.Add(It.IsAny <Submission>()))
            .Callback <Submission>(x => passedSubmission = x);

            var createDate = DateTime.UtcNow;

            timeFake.Setup(x => x.UtcNow).Returns(createDate);

            var    userFake    = new Mock <User>();
            var    challengeId = Guid.NewGuid();
            string sourceCode  = "sourceCode";

            // Act
            service.Create(userFake.Object, challengeId, sourceCode);

            // Assert
            Assert.AreEqual(passedSubmission.User, userFake.Object);
            Assert.AreEqual(passedSubmission.Challenge, challengeFake.Object);
            Assert.AreEqual(passedSubmission.CreatedOn, createDate);
            Assert.AreEqual(passedSubmission.SourceCode, sourceCode);
        }
 public SubmissionServiceTest()
 {
     mockRepository = new Mock <IRepository <Submission> >();
     service        = new SubmissionsService(mockRepository.Object);
 }
Ejemplo n.º 8
0
 public SubmissionsTest()
 {
     db = new ApplicationDbContext(Utilities.TestDbContextOptions());
     seedSubmissions = SeedData.GetSeedingSubmissions();
     service         = new SubmissionsService(db);
 }