コード例 #1
0
        public IActionResult DeleteStudentGrade(int id, string subject)
        {
            var request = new DeleteStudentGradeMessage(Guid.NewGuid(), id, subject);
            var reply   =
                _bus.SendRequest <DeleteStudentGradeMessage, DeleteStudentGradeReplyMessage>("ClassroomApi_Consumer",
                                                                                             request);

            return(new ObjectResult(reply.CorrelationId));
        }
コード例 #2
0
        public void GivenDeleteStudentGradeMessage_WhenCallingDeleteGradeHandler_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.DeleteGrade(createdGrade.Subject));

            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 <DeleteStudentGradeReplyMessage>()));

            var handler = new SqlDeleteStudentGradeHandler(repositry.Object, claimsHelper.Object)
            {
                Context = context.Object
            };

            DeleteStudentGradeMessage      request = new DeleteStudentGradeMessage(Guid.NewGuid(), 1, createdGrade.Subject);
            DeleteStudentGradeReplyMessage reply   = null;

            // Act
            handler.Execute(request);

            //var okObjectResult = result as ObjectResult;

            // Assert
            context.Verify(c => c.Reply(It.IsAny <DeleteStudentGradeReplyMessage>()), Times.Once);
            // Assert.Equal(reply.CorrelationId, okObjectResult.Value);
        }
コード例 #3
0
        public void GivenDeletingStudentGrade_WhenDeleting_ThenCorrespondingStudentGradeIsDeleted()
        {
            // Arrange

            var testStudent = new Student("OliCreationTest", "test")
            {
                Id     = 1,
                Grades = new List <Grade>
                {
                    new Grade {
                        Subject = "Maths"
                    }
                }
            };
            DeleteStudentGradeMessage      request = null;
            DeleteStudentGradeReplyMessage 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
                   <DeleteStudentGradeMessage, DeleteStudentGradeReplyMessage>
                       (It.IsAny <string>(), It.IsAny <DeleteStudentGradeMessage>(), null, It.IsAny <int>()))
            .Returns <string, DeleteStudentGradeMessage, Dictionary <string, string>, int>(
                (endpoint, message, headers, timeout) =>
            {
                request = message;
                reply   = new DeleteStudentGradeReplyMessage(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.DeleteStudentGrade((int)testStudent.Id, "Maths");
            var okObjectResult = result as ObjectResult;

            // Assert

            Assert.Equal(reply.CorrelationId, okObjectResult.Value);
        }