public void Execute_ShouldThrowArgumentException_WhenPassedCourseFormIsInvalid() { // Arrange var engineMock = new Mock <IEngine>(); var factoryMock = new Mock <IAcademyFactory>(); var courseCommand = new AddStudentToCourseCommand(factoryMock.Object, engineMock.Object); var studentMock = new Mock <IStudent>(); studentMock.SetupGet(st => st.Username).Returns("Name"); var courseMock = new Mock <ICourse>(); var seasonMock = new Mock <ISeason>(); seasonMock.SetupGet(s => s.Courses).Returns(new List <ICourse>() { courseMock.Object }); engineMock.SetupGet(e => e.Students).Returns(new List <IStudent>() { studentMock.Object }); engineMock.SetupGet(e => e.Seasons).Returns(new List <ISeason>() { seasonMock.Object }); // Act & Assert Assert.Throws <ArgumentException>(() => courseCommand.Execute(new List <string>() { "Name", "0", "0", "onspace" })); }
public void ShouldThrowArgumentExceptionWhenPassedCourseIsInvalid() { //Arrange var engineMock = Mock.Create <IEngine>(); var factoryMock = Mock.Create <IAcademyFactory>(); var studentMock = Mock.Create <IStudent>(); var seasonMock = Mock.Create <ISeason>(); var courseMock = Mock.Create <ICourse>(); Mock.Arrange(() => studentMock.Username).Returns("Pesho"); Mock.Arrange(() => seasonMock.Students).Returns(new List <IStudent>() { new Student("Pesho", Track.Dev) }); Mock.Arrange(() => seasonMock.Courses).Returns(new List <ICourse>() { courseMock }); Mock.Arrange(() => engineMock.Students).Returns(new List <IStudent>() { studentMock }); Mock.Arrange(() => engineMock.Seasons).Returns(new List <ISeason>() { seasonMock }); var command = new AddStudentToCourseCommand(factoryMock, engineMock); Assert.ThrowsException <ArgumentException>(() => command.Execute(new List <string>() { "Pesho", "0", "0", "invalid" })); }
public void ThrowArgumentException_WhenThePassedCourseFormIsInvalid() { var factoryMock = new Mock <IAcademyFactory>(); var engineMock = new Mock <IEngine>(); var studentMock = new Mock <IStudent>(); var courseMock = new Mock <ICourse>(); var seasonMock = new Mock <ISeason>(); studentMock.Setup(x => x.Username).Returns("Name"); engineMock.Setup(x => x.Students).Returns(new List <IStudent>() { studentMock.Object }); courseMock.Setup(x => x.OnlineStudents).Returns(new List <IStudent>() { studentMock.Object }); engineMock.Setup(x => x.Seasons).Returns(new List <ISeason>() { seasonMock.Object }); seasonMock.Setup(x => x.Courses).Returns(new List <ICourse>() { courseMock.Object }); var command = new AddStudentToCourseCommand(factoryMock.Object, engineMock.Object); Assert.Throws <ArgumentException>(() => command.Execute(new List <string>() { "Name", "0", "0", "Invalid form" })); }
public void ReturnSuccessMessageContainingStudentsIdAndSeasonId_WhenPassedCourseFormIsOnlineAndParamsAreValid() { // arrange var factoryStub = new Mock <IAcademyFactory>(); var engineStub = new Mock <IEngine>(); string studentToAddUsername = "******"; string seasonId = "0"; string courseId = "0"; string form = "online"; var inputParameters = new List <string>() { studentToAddUsername, seasonId, courseId, form }; var studentToAddStub = new Mock <IStudent>(); studentToAddStub.Setup(x => x.Username).Returns(studentToAddUsername); var engineStudents = new List <IStudent>() { studentToAddStub.Object }; engineStub.Setup(x => x.Students).Returns(engineStudents); var courseStub = new Mock <ICourse>(); var onlineStudents = new List <IStudent>(); courseStub.Setup(x => x.OnlineStudents).Returns(onlineStudents); var seasonCourses = new List <ICourse>() { courseStub.Object }; var seasonStub = new Mock <ISeason>(); seasonStub.Setup(x => x.Courses).Returns(seasonCourses); var engineSeasons = new List <ISeason>() { seasonStub.Object }; engineStub.Setup(x => x.Seasons).Returns(engineSeasons); var command = new AddStudentToCourseCommand(factoryStub.Object, engineStub.Object); // act var result = command.Execute(inputParameters); // assert StringAssert.Contains(studentToAddUsername, result); StringAssert.Contains("0", result); }
public void AddStudentToOnsiteStudents_WhenPassedCourseFormIsOnsiteAndParamsAreValid() { // arrange var factoryStub = new Mock <IAcademyFactory>(); var engineStub = new Mock <IEngine>(); string studentToAddUsername = "******"; string seasonId = "0"; string courseId = "0"; string form = "onsite"; var inputParameters = new List <string>() { studentToAddUsername, seasonId, courseId, form }; var studentToAddStub = new Mock <IStudent>(); studentToAddStub.Setup(x => x.Username).Returns(studentToAddUsername); var engineStudents = new List <IStudent>() { studentToAddStub.Object }; engineStub.Setup(x => x.Students).Returns(engineStudents); var courseStub = new Mock <ICourse>(); var onsiteStudents = new List <IStudent>(); courseStub.Setup(x => x.OnsiteStudents).Returns(onsiteStudents); var seasonCourses = new List <ICourse>() { courseStub.Object }; var seasonStub = new Mock <ISeason>(); seasonStub.Setup(x => x.Courses).Returns(seasonCourses); var engineSeasons = new List <ISeason>() { seasonStub.Object }; engineStub.Setup(x => x.Seasons).Returns(engineSeasons); var command = new AddStudentToCourseCommand(factoryStub.Object, engineStub.Object); // act command.Execute(inputParameters); // assert Assert.AreSame(studentToAddStub.Object, onsiteStudents.First()); }
public void Execute_WhenAllPassedParametersAreValid_ShouldReturnSuccessMessageThatContainsStudetnsIdAndUsername() { string username = "******"; string seasonId = "0"; string courseId = "0"; string form = "onsite"; var parameters = new List <string>() { username, seasonId, courseId, form }; var factoryStub = new Mock <IAcademyFactory>(); var engineStub = new Mock <IEngine>(); var studentStub = new Mock <IStudent>(); studentStub.Setup(x => x.Username).Returns("username"); var engineStudents = new List <IStudent>() { studentStub.Object }; var seasonStub = new Mock <ISeason>(); var courseStub = new Mock <ICourse>(); var courseStudents = new List <IStudent>(); courseStub.Setup(x => x.OnlineStudents).Returns(courseStudents); courseStub.Setup(x => x.OnsiteStudents).Returns(courseStudents); var seasonCourses = new List <ICourse>() { courseStub.Object }; seasonStub.Setup(x => x.Courses).Returns(seasonCourses); var engineSeasons = new List <ISeason>() { seasonStub.Object }; engineStub.Setup(x => x.Students).Returns(engineStudents); engineStub.Setup(x => x.Seasons).Returns(engineSeasons); var command = new AddStudentToCourseCommand(factoryStub.Object, engineStub.Object); string returnedResult = command.Execute(parameters); StringAssert.Contains(username, returnedResult); StringAssert.Contains(seasonId, returnedResult); }
public void Constructor_WhenPassedValidParameters_ShouldAssignThemCorrectly() { // arrange var factoryStub = new Mock <IAcademyFactory>(); var engineStub = new Mock <IEngine>(); var command = new AddStudentToCourseCommand(factoryStub.Object, engineStub.Object); // act and assert Assert.AreSame(command.Engine, engineStub.Object); Assert.AreSame(command.Factory, factoryStub.Object); }
public void Execute_WhenAllParametersAreValidAndFormIsOnline_ShouldAddStudentToCoursesOnlineStudens() { string username = "******"; string seasonId = "0"; string courseId = "0"; string form = "online"; var parameters = new List <string>() { username, seasonId, courseId, form }; var factoryStub = new Mock <IAcademyFactory>(); var engineStub = new Mock <IEngine>(); var studentStub = new Mock <IStudent>(); studentStub.Setup(x => x.Username).Returns("username"); var engineStudents = new List <IStudent>() { studentStub.Object }; var seasonStub = new Mock <ISeason>(); var courseStub = new Mock <ICourse>(); var courseStudents = new List <IStudent>(); courseStub.Setup(x => x.OnlineStudents).Returns(courseStudents); courseStub.Setup(x => x.OnsiteStudents).Returns(courseStudents); var seasonCourses = new List <ICourse>() { courseStub.Object }; seasonStub.Setup(x => x.Courses).Returns(seasonCourses); var engineSeasons = new List <ISeason>() { seasonStub.Object }; engineStub.Setup(x => x.Students).Returns(engineStudents); engineStub.Setup(x => x.Seasons).Returns(engineSeasons); var command = new AddStudentToCourseCommand(factoryStub.Object, engineStub.Object); command.Execute(parameters); Assert.AreSame(courseStub.Object.OnlineStudents[0], studentStub.Object); }
private Command AddStudent(string textCommandLine) { var split = textCommandLine.Split(' '); var studentEmail = split[split.Length - 1]; return(new Command(() => { var addStudentToCourseCommand = new AddStudentToCourseCommand(_courseService, _course.Id, studentEmail); addStudentToCourseCommand.Execute(); return addStudentToCourseCommand.Result; }, CommandType.AddStudent)); }
public void Execute_WhenPassedFormIsInvalid_ShouldThrowArgumentException() { string username = "******"; string seasonId = "0"; string courseId = "0"; string form = "invalidform"; var parameters = new List <string>() { username, seasonId, courseId, form }; var factoryStub = new Mock <IAcademyFactory>(); var engineStub = new Mock <IEngine>(); var studentStub = new Mock <IStudent>(); studentStub.Setup(x => x.Username).Returns("username"); var engineStudents = new List <IStudent>() { studentStub.Object }; var seasonStub = new Mock <ISeason>(); var courseStub = new Mock <ICourse>(); var courseStudents = new List <IStudent>(); courseStub.Setup(x => x.OnlineStudents).Returns(courseStudents); courseStub.Setup(x => x.OnsiteStudents).Returns(courseStudents); var seasonCourses = new List <ICourse>() { courseStub.Object }; seasonStub.Setup(x => x.Courses).Returns(seasonCourses); var engineSeasons = new List <ISeason>() { seasonStub.Object }; engineStub.Setup(x => x.Students).Returns(engineStudents); engineStub.Setup(x => x.Seasons).Returns(engineSeasons); var command = new AddStudentToCourseCommand(factoryStub.Object, engineStub.Object); Assert.Throws <ArgumentException>(() => command.Execute(parameters)); }
public void AddCorrectlyOnsiteStudents_WhenTheParametersAreOk() { // Arrange var factoryMock = new Mock <IAcademyFactory>(); var engineMock = new Mock <IEngine>(); var fixture = new Fixture(); fixture.Register <string>(() => "Pesho"); fixture.Register <int>(() => 5); fixture.Register <float>(() => 5f); fixture.Customizations.Add(new TypeRelay(typeof(ICourseResult), typeof(CourseResult))); fixture.Customizations.Add(new TypeRelay(typeof(ICourse), typeof(Course))); var studentStub = fixture.Create <Student>(); engineMock.Setup(x => x.Students) .Returns(new List <IStudent>() { studentStub }); var mockedSeason = new Mock <ISeason>(); var mockedCourse = new Mock <ICourse>(); mockedCourse.Setup(x => x.OnlineStudents).Returns(new List <IStudent>()); mockedCourse.Setup(x => x.OnsiteStudents).Returns(new List <IStudent>()); mockedSeason.Setup(x => x.Courses) .Returns(new List <ICourse>() { mockedCourse.Object }); engineMock.Setup(x => x.Seasons) .Returns(new List <ISeason>() { mockedSeason.Object }); var command = new AddStudentToCourseCommand(factoryMock.Object, engineMock.Object); // Act & Assert var result = command.Execute(new List <string>() { "Pesho", "0", "0", "onsite" }); Assert.AreEqual(1, mockedCourse.Object.OnsiteStudents.Count); }
public void ThrowArgumentException_WhenPassedCourseFormIsInvalid() { // arrange var factoryStub = new Mock <IAcademyFactory>(); var engineStub = new Mock <IEngine>(); string studentToAddUsername = "******"; string seasonId = "0"; string courseId = "0"; string form = "invalid form"; var inputParameters = new List <string>() { studentToAddUsername, seasonId, courseId, form }; var studentToAddStub = new Mock <IStudent>(); studentToAddStub.Setup(x => x.Username).Returns(studentToAddUsername); var engineStudents = new List <IStudent>() { studentToAddStub.Object }; engineStub.Setup(x => x.Students).Returns(engineStudents); var courseStub = new Mock <ICourse>(); var seasonCourses = new List <ICourse>() { courseStub.Object }; var seasonStub = new Mock <ISeason>(); seasonStub.Setup(x => x.Courses).Returns(seasonCourses); var engineSeasons = new List <ISeason>() { seasonStub.Object }; engineStub.Setup(x => x.Seasons).Returns(engineSeasons); var command = new AddStudentToCourseCommand(factoryStub.Object, engineStub.Object); // act and assert Assert.Throws <ArgumentException>(() => command.Execute(inputParameters)); }
public void Execute_ShouldReturnCorrectSuccessMessage_WhenThePassedCourseFormIsInvalid() { //Arrange var factoryStub = new Mock <IAcademyFactory>(); var engineMock = new Mock <IEngine>(); var parameters = new List <string>() { "username", "0", "0", "onsite" }; var studentMock = new Mock <IStudent>(); studentMock.SetupGet(x => x.Username).Returns("username"); var engineStudents = new List <IStudent>() { studentMock.Object }; engineMock.SetupGet(x => x.Students).Returns(engineStudents); var courseMock = new Mock <ICourse>(); var onsiteStudents = new List <IStudent>(); courseMock.SetupGet(x => x.OnsiteStudents).Returns(onsiteStudents); var courses = new List <ICourse>() { courseMock.Object }; var seasonMock = new Mock <ISeason>(); seasonMock.SetupGet(x => x.Courses).Returns(courses); var seasons = new List <ISeason>() { seasonMock.Object }; engineMock.SetupGet(x => x.Seasons).Returns(seasons); var command = new AddStudentToCourseCommand(factoryStub.Object, engineMock.Object); // Act var message = command.Execute(parameters); // Assert StringAssert.Contains("username", message); StringAssert.Contains("0", message); }
public void Execute_AddTheStudentInTheOnlinedAttendanceForm_ShouldRetrunCorrectMessage() { // Arrange var engineMock = new Mock <IEngine>(); var factoryMock = new Mock <IAcademyFactory>(); var courseCommand = new AddStudentToCourseCommand(factoryMock.Object, engineMock.Object); var studentMock = new Mock <IStudent>(); studentMock.SetupGet(st => st.Username).Returns("Name"); var courseMock = new Mock <ICourse>(); courseMock.SetupGet(c => c.Name).Returns("Course"); courseMock.SetupGet(c => c.OnlineStudents).Returns(new List <IStudent>() { }); courseMock.SetupGet(c => c.OnsiteStudents).Returns(new List <IStudent>() { }); var seasonMock = new Mock <ISeason>(); seasonMock.SetupGet(s => s.Courses).Returns(new List <ICourse>() { courseMock.Object }); engineMock.SetupGet(e => e.Students).Returns(new List <IStudent>() { studentMock.Object }); engineMock.SetupGet(e => e.Seasons).Returns(new List <ISeason>() { seasonMock.Object }); // Act var command = courseCommand.Execute(new List <string>() { "Name", "0", "0", "online" }); // Assert StringAssert.Contains("Name", command); StringAssert.Contains("0", command); StringAssert.Contains("Course", command); }
public void Execute_ShouldCorrectlyAddIntoTheOnlineCourse_WhenThePassedCourseFormIsInvalid() { //Arrange var factoryStub = new Mock <IAcademyFactory>(); var engineMock = new Mock <IEngine>(); var parameters = new List <string>() { "username", "0", "0", "online" }; var studentMock = new Mock <IStudent>(); studentMock.SetupGet(x => x.Username).Returns("username"); var engineStudents = new List <IStudent>() { studentMock.Object }; engineMock.SetupGet(x => x.Students).Returns(engineStudents); var courseMock = new Mock <ICourse>(); var onlineStudents = new List <IStudent>(); courseMock.SetupGet(x => x.OnlineStudents).Returns(onlineStudents); var courses = new List <ICourse>() { courseMock.Object }; var seasonMock = new Mock <ISeason>(); seasonMock.SetupGet(x => x.Courses).Returns(courses); var seasons = new List <ISeason>() { seasonMock.Object }; engineMock.SetupGet(x => x.Seasons).Returns(seasons); var command = new AddStudentToCourseCommand(factoryStub.Object, engineMock.Object); // Act command.Execute(parameters); // Assert Assert.AreEqual(1, onlineStudents.Count); }
public void AddCorrectlyOnlineStudents_WhenTheParametersAreOk() { // Arrange var factoryMock = new Mock <IAcademyFactory>(); var engineMock = new Mock <IEngine>(); var mockedStudent = new Mock <IStudent>(); mockedStudent.SetupGet(x => x.Username).Returns("Pesho"); engineMock.Setup(x => x.Students) .Returns(new List <IStudent>() { mockedStudent.Object }); var mockedSeason = new Mock <ISeason>(); var mockedCourse = new Mock <ICourse>(); mockedCourse.Setup(x => x.OnlineStudents).Returns(new List <IStudent>()); mockedCourse.Setup(x => x.OnsiteStudents).Returns(new List <IStudent>()); mockedSeason.Setup(x => x.Courses) .Returns(new List <ICourse>() { mockedCourse.Object }); engineMock.Setup(x => x.Seasons) .Returns(new List <ISeason>() { mockedSeason.Object }); var command = new AddStudentToCourseCommand(factoryMock.Object, engineMock.Object); // Act & Assert var result = command.Execute(new List <string>() { "Pesho", "0", "0", "online" }); Assert.AreEqual(1, mockedCourse.Object.OnlineStudents.Count); }
public void ThrowArgumentException_WhenTheFormOfEducationIsNotAvailable() { // Arrange var factoryMock = new Mock <IAcademyFactory>(); var engineMock = new Mock <IEngine>(); var mockedStudent = new Mock <IStudent>(); mockedStudent.SetupGet(x => x.Username).Returns("Pesho"); engineMock.Setup(x => x.Students) .Returns(new List <IStudent>() { mockedStudent.Object }); var mockedSeason = new Mock <ISeason>(); var mockedCourse = new Mock <ICourse>(); mockedCourse.Setup(x => x.OnlineStudents).Returns(new List <IStudent>()); mockedCourse.Setup(x => x.OnsiteStudents).Returns(new List <IStudent>()); mockedSeason.Setup(x => x.Courses) .Returns(new List <ICourse>() { mockedCourse.Object }); engineMock.Setup(x => x.Seasons) .Returns(new List <ISeason>() { mockedSeason.Object }); var command = new AddStudentToCourseCommand(factoryMock.Object, engineMock.Object); // Act & Assert Assert.Throws <ArgumentException>(() => command.Execute(new List <string>() { "Pesho", "0", "0", "on and on" })); }
public void Execute_ShouldReturnSuccessMessageContainingStudentUsernameAndSeasonId_WhenStudentIsAdded() { // Arrange var factoryStub = new Mock <IAcademyFactory>(); var engineMock = new Mock <IEngine>(); var command = new AddStudentToCourseCommand(factoryStub.Object, engineMock.Object); var studentStub = new Mock <IStudent>(); var seasonStub = new Mock <ISeason>(); var courseStub = new Mock <ICourse>(); studentStub.SetupGet(s => s.Username).Returns("Pesho"); seasonStub.SetupGet(s => s.Students).Returns(new List <IStudent> { studentStub.Object }); seasonStub.SetupGet(s => s.Courses).Returns(new List <ICourse> { courseStub.Object }); courseStub.SetupGet(c => c.OnsiteStudents).Returns(new List <IStudent>()); engineMock.SetupGet(e => e.Students).Returns(new List <IStudent> { studentStub.Object }); engineMock.SetupGet(e => e.Seasons).Returns(new List <ISeason> { seasonStub.Object }); string validStudentUsername = "******"; string validSeasonId = "0"; string validCourseId = "0"; string validForm = "onsite"; var parameters = new List <string> { validStudentUsername, validSeasonId, validCourseId, validForm }; // Act string resultMessage = command.Execute(parameters); // Assert StringAssert.Contains(validStudentUsername, resultMessage); StringAssert.Contains(validSeasonId, resultMessage); }
public void Execute_ShouldCorrectlyAddStudentIntoCourseInTheOnlineForm_WhenPassedCourseFormIsOnline() { // Arrange var factoryStub = new Mock <IAcademyFactory>(); var engineMock = new Mock <IEngine>(); var command = new AddStudentToCourseCommand(factoryStub.Object, engineMock.Object); var studentStub = new Mock <IStudent>(); var seasonStub = new Mock <ISeason>(); var courseStub = new Mock <ICourse>(); studentStub.SetupGet(s => s.Username).Returns("Pesho"); seasonStub.SetupGet(s => s.Students).Returns(new List <IStudent> { studentStub.Object }); seasonStub.SetupGet(s => s.Courses).Returns(new List <ICourse> { courseStub.Object }); courseStub.SetupGet(c => c.OnlineStudents).Returns(new List <IStudent>()); engineMock.SetupGet(e => e.Students).Returns(new List <IStudent> { studentStub.Object }); engineMock.SetupGet(e => e.Seasons).Returns(new List <ISeason> { seasonStub.Object }); string validStudentUsername = "******"; string validSeasonId = "0"; string validCourseId = "0"; string validForm = "online"; var parameters = new List <string> { validStudentUsername, validSeasonId, validCourseId, validForm }; // Act command.Execute(parameters); // Assert Assert.AreSame(studentStub.Object.Username, engineMock.Object.Seasons[0].Courses[0].OnlineStudents[0].Username); }
public void Execute_ShouldThrow_WhenThePassedCourseFormIsInvalid() { //Arrange var factoryStub = new Mock <IAcademyFactory>(); var engineMock = new Mock <IEngine>(); var parameters = new List <string>() { "username", "0", "0", "invalid form" }; var studentMock = new Mock <IStudent>(); studentMock.SetupGet(x => x.Username).Returns("username"); var engineStudents = new List <IStudent>() { studentMock.Object }; engineMock.SetupGet(x => x.Students).Returns(engineStudents); var courseMock = new Mock <ICourse>(); var courses = new List <ICourse>() { courseMock.Object }; var seasonMock = new Mock <ISeason>(); seasonMock.SetupGet(x => x.Courses).Returns(courses); var seasons = new List <ISeason>() { seasonMock.Object }; engineMock.SetupGet(x => x.Seasons).Returns(seasons); var command = new AddStudentToCourseCommand(factoryStub.Object, engineMock.Object); // Act & Assert Assert.Throws <ArgumentException>(() => command.Execute(parameters)); }
public void Execute_ShouldNotThrowArgumentException_WhenPassedCourseFormIsValid(string form) { // Arrange var factoryStub = new Mock <IAcademyFactory>(); var engineStub = new Mock <IEngine>(); var command = new AddStudentToCourseCommand(factoryStub.Object, engineStub.Object); var studentStub = new Mock <IStudent>(); var seasonStub = new Mock <ISeason>(); var courseStub = new Mock <ICourse>(); studentStub.SetupGet(s => s.Username).Returns("Pesho"); seasonStub.SetupGet(s => s.Students).Returns(new List <IStudent> { studentStub.Object }); seasonStub.SetupGet(s => s.Courses).Returns(new List <ICourse> { courseStub.Object }); courseStub.SetupGet(c => c.OnlineStudents).Returns(new List <IStudent>()); courseStub.SetupGet(c => c.OnsiteStudents).Returns(new List <IStudent>()); engineStub.SetupGet(e => e.Students).Returns(new List <IStudent> { studentStub.Object }); engineStub.SetupGet(e => e.Seasons).Returns(new List <ISeason> { seasonStub.Object }); string validStudentUsername = "******"; string validSeasonId = "0"; string validCourseId = "0"; var parameters = new List <string> { validStudentUsername, validSeasonId, validCourseId, form }; // Act and Assert Assert.DoesNotThrow(() => command.Execute(parameters)); }
public void ReturnSuccessMessage_WhenDataIsAddedToCollection() { var factoryMock = new Mock <IAcademyFactory>(); var engineMock = new Mock <IEngine>(); var studentMock = new Mock <IStudent>(); var courseMock = new Mock <ICourse>(); var seasonMock = new Mock <ISeason>(); var anotherStudentMock = new Mock <IStudent>(); studentMock.Setup(x => x.Username).Returns("Name"); anotherStudentMock.Setup(x => x.Username).Returns("Another name"); engineMock.Setup(x => x.Students).Returns(new List <IStudent>() { studentMock.Object }); courseMock.Setup(x => x.OnlineStudents).Returns(new List <IStudent>() { anotherStudentMock.Object }); engineMock.Setup(x => x.Seasons).Returns(new List <ISeason>() { seasonMock.Object }); seasonMock.Setup(x => x.Courses).Returns(new List <ICourse>() { courseMock.Object }); var command = new AddStudentToCourseCommand(factoryMock.Object, engineMock.Object); var result = command.Execute(new List <string>() { "Name", "0", "0", "online" }); StringAssert.Contains("Name", result); StringAssert.Contains("0", result); }
public void CorrectlyAddTheFoundStudentIntoTheCourse_WhenThePassedCourseFormIsalid() { var factoryMock = new Mock <IAcademyFactory>(); var engineMock = new Mock <IEngine>(); var studentMock = new Mock <IStudent>(); var courseMock = new Mock <ICourse>(); var seasonMock = new Mock <ISeason>(); var anotherStudentMock = new Mock <IStudent>(); studentMock.Setup(x => x.Username).Returns("Name"); anotherStudentMock.Setup(x => x.Username).Returns("Another name"); engineMock.Setup(x => x.Students).Returns(new List <IStudent>() { studentMock.Object }); courseMock.Setup(x => x.OnlineStudents).Returns(new List <IStudent>() { anotherStudentMock.Object }); engineMock.Setup(x => x.Seasons).Returns(new List <ISeason>() { seasonMock.Object }); seasonMock.Setup(x => x.Courses).Returns(new List <ICourse>() { courseMock.Object }); var command = new AddStudentToCourseCommand(factoryMock.Object, engineMock.Object); command.Execute(new List <string>() { "Name", "0", "0", "online" }); Assert.AreEqual(2, courseMock.Object.OnlineStudents.Count); }
static void Main(string[] args) { var configuration = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json", optional: false) .Build(); var courseService = new CourseService( privateKeyPath: configuration.GetSection("PrivateKeyPath").Value, emailToImpersonate: configuration.GetSection("AdminEmail").Value, scopes: new string[] { Scope.ClassroomCourses, Scope.ClassroomProfileEmails, Scope.ClassroomRosters } ); Parser.Default.ParseArguments <AddStudentOptions, ExecuteCommandListOptions> (args) .WithParsed <AddStudentOptions>(opts => { var addStudentToCourseCommand = new AddStudentToCourseCommand( courseService: courseService, courseId: opts.CourseId, studentEmail: opts.Email ); addStudentToCourseCommand.Execute(); }) .WithParsed <ExecuteCommandListOptions>(opts => { var logger = new Logger(); var queue = new QueueProcessor(logger); var textToCommandParser = new TextToCommandParser(courseService, logger); using (var reader = new StreamReader(opts.Path)) { string line; while ((line = reader.ReadLine()) != null) { var command = textToCommandParser.Parse(line); var node = new Node(command); if (node.Command.CommandType == CommandType.AddStudent) { var queueLastNode = queue.Queue.Last(); queueLastNode.Children.Add(node); } else { queue.Enqueue(node); } } } queue.ProcessQueue(); if (queue.HasAnyNodeFailed && opts.Reprocess) { queue.ReprocessFailedQueue(); } }) .WithNotParsed(errors => { foreach (var error in errors) { Console.WriteLine(error.ToString()); } }); }