public void Execute(CreateStudentGradeMessage message) { var test = Thread.CurrentPrincipal.Identity.Name; if (test == "ofebres-cordero") { var student = _studentRepository.Read(message.Id); var studentGrades = student.Grades; if (studentGrades.Count == 0) { studentGrades = new List <Grade>(); } studentGrades.Add(message.Grade); var grade = new Dictionary <string, object> { { "Grades", studentGrades } }; var replyMessage = new CreateStudentGradeReplyMessage(message.CorrelationId); _studentRepository.Update(message.Id, grade); Context.Reply(replyMessage); } else { Console.WriteLine("Request Failed - Invalid Token"); } Context.Reply(new CreateStudentGradeReplyMessage(message.CorrelationId)); }
public void GivenCreateStudentGradeMessage_WhenCallingCreateGradeHandler_ThenCorrespondingReplyIsSend() { // Arrange var repositry = new Mock <ISqlRepository <IStudent> >(MockBehavior.Strict); repositry.Setup(s => s.ListGrades()).Returns(new List <Grade> { new Grade { Subject = "Maths", Id = 1 }, new Grade { Subject = "English", Id = 2 } }); var createdGrade = new Grade { Subject = "TestGrade" }; repositry.Setup(h => h.CreateGrade(createdGrade)); var claimsHelper = new Mock <IClaimsHelper>(MockBehavior.Strict); claimsHelper.Setup(h => h.GetClaims()).Returns(new Claims() { UserClaims = new UserClaim() { Username = "******" } }); var context = new Mock <IConsumeContext>(MockBehavior.Strict); context.Setup(c => c.Reply(It.IsAny <CreateStudentGradeReplyMessage>())); var handler = new SqlCreateStudentGradeHandler(repositry.Object, claimsHelper.Object) { Context = context.Object }; CreateStudentGradeMessage request = new CreateStudentGradeMessage(Guid.NewGuid(), 1, createdGrade); CreateStudentGradeReplyMessage reply = null; // Act handler.Execute(request); //var okObjectResult = result as ObjectResult; // Assert context.Verify(c => c.Reply(It.IsAny <CreateStudentGradeReplyMessage>()), Times.Once); // Assert.Equal(reply.CorrelationId, okObjectResult.Value); }
public void GivenCreatingGrade_WhenPosting_ThenCorrespondingGradeIsCreated() { // Arrange var testStudent = new Student("OliCreationTest", "test") { Id = 1, Grades = new List <Grade> { new Grade { Subject = "Maths" } } }; var testGrade = new Grade { Subject = "ICT", Score = 100 }; CreateStudentGradeMessage request = null; CreateStudentGradeReplyMessage reply = null; var queryCountWrapper = new Mock <IQueryCountWrapper>(); queryCountWrapper.SetupGet(qcw => qcw.QueryCount).Returns(0); var bus = new Mock <IBus>(MockBehavior.Strict); bus .Setup(b => b.SendRequest <CreateStudentGradeMessage, CreateStudentGradeReplyMessage> (It.IsAny <string>(), It.IsAny <CreateStudentGradeMessage>(), null, It.IsAny <int>())) .Returns <string, CreateStudentGradeMessage, Dictionary <string, string>, int>( (endpoint, message, headers, timeout) => { request = message; reply = new CreateStudentGradeReplyMessage(message.CorrelationId); return(reply); }); var claimsHelper = new Mock <IClaimsHelper>(MockBehavior.Strict); var controller = new StudentController(bus.Object, claimsHelper.Object, queryCountWrapper.Object); // Act var result = controller.CreateGrade(testGrade, 1); var okObjectResult = result as AcceptedResult; // Assert Assert.NotNull(okObjectResult); }
public void Execute(CreateStudentGradeMessage message) { var username = _claimsHelper.GetClaims().UserClaims.Username; if (username == "ofebres-cordero") { message.Grade.Id = _repository.ListGrades().Select(_ => _.Id).Max() + 1; message.Grade.StudentId = message.Id; var replyMessage = new CreateStudentGradeReplyMessage(message.CorrelationId); _repository.CreateGrade(message.Grade); Context.Reply(replyMessage); Console.WriteLine($"Grade created"); } else { Console.WriteLine("Request Failed - Invalid Token"); Context.Reply(new CreateStudentGradeReplyMessage(message.CorrelationId)); } }