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); }
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); }
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>())); }
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")); }
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); }
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); }
public SubmissionsTest() { db = new ApplicationDbContext(Utilities.TestDbContextOptions()); seedSubmissions = SeedData.GetSeedingSubmissions(); service = new SubmissionsService(db); }