public void Test_Create_Should_ThrowNotFoundException_When_NoReportWithGUID()
        {
            // Arrange
            Mock <IReportRepository> reportRep = new Mock <IReportRepository>();

            reportRep.Setup(x => x.Get(It.Is <string>(y => y == "Valid"))).Returns(_reports.SingleOrDefault(x => x.ReportGUID.Equals("Valid")));
            reportRep.Setup(x => x.Get(It.Is <string>(y => y == "InValid"))).Returns(_reports.SingleOrDefault(x => x.ReportGUID.Equals("InValid")));
            reportRep.Setup(x => x.GetAll()).Returns(_reports);
            Mock <IReportUserRelRepository> reportUserRelRep = new Mock <IReportUserRelRepository>();

            reportUserRelRep.Setup(x => x.Get(It.Is <int>(y => y == 1), It.Is <int>(z => z == 1))).Returns(_reportUserRel.SingleOrDefault(x => x.User.Id == 1 && x.Report.Id == 1));
            reportUserRelRep.Setup(x => x.Get(It.Is <int>(y => y == 2), It.Is <int>(z => z == 2))).Returns(_reportUserRel.SingleOrDefault(x => x.User.Id == 2 && x.Report.Id == 2));
            reportUserRelRep.Setup(x => x.Add(It.IsAny <ReportUserRel>())).Callback <ReportUserRel>((z) => _reportUserRel.Add(z));
            Mock <IUserRepository> userRep = new Mock <IUserRepository>();

            userRep.Setup(x => x.Get(It.Is <string>(z => z == "watch"))).Returns(_users.SingleOrDefault(z => z.UserGUID == "watch"));
            // Act
            ReportUserRelManager manager = new ReportUserRelManager(userRep.Object, reportUserRelRep.Object, reportRep.Object);

            // Assert
            Assert.Throws(typeof(NotFoundException), () => manager.Create(new CreateReportUserDto
            {
                ReportGUID = "Valid123",
                UserGUID   = "modify",
                Permission = (int)ReportUserPermissions.CanModify
            }));
        }
        public void Test_Create_Should_CreateRecord_When_ValidDataAdded()
        {
            // Arrange
            Mock <IReportRepository> reportRep = new Mock <IReportRepository>();

            reportRep.Setup(x => x.Get(It.Is <string>(y => y == "Valid"))).Returns(_reports.SingleOrDefault(x => x.ReportGUID.Equals("Valid")));
            reportRep.Setup(x => x.Get(It.Is <string>(y => y == "InValid"))).Returns(_reports.SingleOrDefault(x => x.ReportGUID.Equals("InValid")));
            reportRep.Setup(x => x.GetAll()).Returns(_reports);
            Mock <IReportUserRelRepository> reportUserRelRep = new Mock <IReportUserRelRepository>();

            reportUserRelRep.Setup(x => x.Get(It.Is <int>(y => y == 1), It.Is <int>(z => z == 1))).Returns(_reportUserRel.SingleOrDefault(x => x.User.Id == 1 && x.Report.Id == 1));
            reportUserRelRep.Setup(x => x.Get(It.Is <int>(y => y == 2), It.Is <int>(z => z == 2))).Returns(_reportUserRel.SingleOrDefault(x => x.User.Id == 2 && x.Report.Id == 2));
            reportUserRelRep.Setup(x => x.Add(It.IsAny <ReportUserRel>())).Callback <ReportUserRel>((z) => _reportUserRel.Add(z));
            Mock <IUserRepository> userRep = new Mock <IUserRepository>();

            userRep.Setup(x => x.Get(It.Is <string>(z => z == "watch"))).Returns(_users.SingleOrDefault(z => z.UserGUID == "watch"));
            // Act
            ReportUserRelManager manager = new ReportUserRelManager(userRep.Object, reportUserRelRep.Object, reportRep.Object);
            int k = _reportUserRel.Count;

            manager.Create(new CreateReportUserDto
            {
                ReportGUID = "Valid",
                UserGUID   = "watch",
                Permission = (int)ReportUserPermissions.CanWatch
            });
            // Assert
            Assert.Greater(_reportUserRel.Count, k);
        }
 public ReportUserRelController(ReportUserRelManager reportUserRelManager, ILogger <ReportUserRelController> logger)
 {
     _manager = reportUserRelManager;
     _logger  = logger;
 }