/// <summary> /// Returns a mock push event retriever. /// </summary> private Mock <IPushEventRetriever> GetMockPushEventRetriever(GitHubPushEvent pushEvent) { var pushEventRetriever = new Mock <IPushEventRetriever>(); pushEventRetriever .Setup ( retriever => retriever.GetAllPushEventsAsync ( It.Is <Project> ( project => project.Name == "Project1" ), It.Is <IList <ClassroomMembership> > ( students => students.Count == 1 && students[0].GitHubTeam == "LastNameFirstName" ) ) ) .Returns <Project, IList <ClassroomMembership> > ( (project, students) => Task.FromResult <IList <StudentRepoPushEvents> > ( Collections.CreateList ( new StudentRepoPushEvents(students[0], Collections.CreateList(pushEvent)) ) ) ); return(pushEventRetriever); }
/// <summary> /// Returns a mock json serializer. /// </summary> private static Mock <IJsonSerializer> GetMockJsonSerializer( GitHubPushEvent pushEvent) { var jsonSerializer = new Mock <IJsonSerializer>(); jsonSerializer .Setup(js => js.Deserialize <GitHubPushEvent>("SerializedPushEvent")) .Returns(pushEvent); return(jsonSerializer); }
/// <summary> /// Returns a mock push event processor. /// </summary> private Mock <IPushEventProcessor> GetMockPushEventProcessor(GitHubPushEvent pushEvent) { var pushEventProcessor = new Mock <IPushEventProcessor>(); pushEventProcessor .Setup ( processor => processor.GetNewCommitsToProcess ( It.Is <Project> ( project => project.Name == "Project1" ), It.Is <ICollection <CommitDescriptor> > ( existingCommits => existingCommits.Count == 2 && existingCommits.Any(c => c.Sha == "FirstCommitSha") && existingCommits.Any(c => c.Sha == "SecondCommitSha") ), It.Is <IList <StudentRepoPushEvents> > ( events => events.Count == 1 && events[0].PushEvents.Count == 1 && events[0].PushEvents[0] == pushEvent ) ) ) .Returns <Project, ICollection <CommitDescriptor>, IList <StudentRepoPushEvents> > ( (project, commits, pushEvents) => Collections.CreateList ( new PushEventCommit ( pushEvent, new Commit() { Sha = "NewCommitSha", PushDate = pushEvent.CreatedAt.UtcDateTime } ) ) ); pushEventProcessor .Setup(GetCreateBuildJobExpression(pushEvent)) .ReturnsAsync("NewBuildJobId"); return(pushEventProcessor); }
/// <summary> /// Returns the expected expression for CreateRepositoryAsync. /// </summary> private static Expression <Func <IPushEventProcessor, Task <string> > > GetCreateBuildJobExpression( GitHubPushEvent pushEvent) { return(processor => processor.CreateBuildJobAsync ( It.Is <Project> ( project => project.Name == "Project1" ), It.Is <PushEventCommit> ( pushEventCommit => pushEventCommit.PushEvent == pushEvent ), "BuildResultCallbackUrl" )); }
/// <summary> /// Constructor. /// </summary> public PushEventCommit(GitHubPushEvent pushEvent, Commit commit) { PushEvent = pushEvent; Commit = commit; }
public EmptyResult PushEvent(GitHubPushEvent pushEvent) { return(new EmptyResult()); }