public void PutAsync_Failed_LabelIsNullOrWhiteSpace(string labelName)
        {
            var mockLabelRepo = new Mock <ILabelRepository>();
            var mockLogger    = new Mock <ILogger <LabelsController> >();
            var mockMapper    = new Mock <IMapper>();

            var labelModel = new Models.Label {
                Id = 1, Name = "LabelA"
            };

            mockLabelRepo.Setup(x => x.GetLabelAsync(It.IsAny <int>())).Returns(Task.FromResult(labelModel));

            // Arrange
            var controller = new LabelsController(mockLogger.Object, mockMapper.Object, mockLabelRepo.Object);

            // Act
            var label = new DTOs.Label {
                Id = 1, Name = labelName
            };
            var response = controller.PutAsync(1, label);

            // Assert
            var result = response.Result.Result as ObjectResult;

            result.StatusCode.ShouldBe(400);
            result.Value.ShouldBe($"Label could be neither null nor whitespace.");
        }
        public void Initialize()
        {
            var options = new DbContextOptionsBuilder <LibraryContext>()
                          .UseSqlite("DataSource=C:/Users/denny/Desktop/Cloud Applications/Test_New_Objective_API_Layers_v2/test_db")
                          .Options;

            using (var context = new LibraryContext(options))
            {
                context.Database.OpenConnection();
                context.Database.EnsureCreated();

                context.Objectives.Add(new Objective()
                {
                    Id          = 1,
                    Description = "test objective 1"
                });

                context.Labels.Add(new Label()
                {
                    Id      = 1,
                    Feature = "test label 1"
                });
            }

            _facade_obj     = new ObjectiveFacade(new LibraryContext(options));
            _controller_obj = new ObjectivesController(_facade_obj);

            _facade_lbl     = new LabelFacade(new LibraryContext(options));
            _controller_lbl = new LabelsController(_facade_lbl);
        }
        public void PostAsync_Failed_LabelExisted()
        {
            var mockLabelRepo = new Mock <ILabelRepository>();
            var mockLogger    = new Mock <ILogger <LabelsController> >();
            var mockMapper    = new Mock <IMapper>();

            var labels = new List <Models.Label>()
            {
                new Models.Label {
                    Name = "LabelA"
                }, new Models.Label {
                    Name = "LabelB"
                }
            };

            mockLabelRepo.Setup(x => x.GetLabelsAsync()).Returns(Task.FromResult(labels.AsEnumerable()));

            // Arrange
            var controller = new LabelsController(mockLogger.Object, mockMapper.Object, mockLabelRepo.Object);

            // Act
            var label = new DTOs.Label {
                Name = "LabelA"
            };
            var response = controller.PostAsync(label);

            // Assert
            var result = response.Result.Result as ObjectResult;

            result.StatusCode.ShouldBe(400);
            result.Value.ShouldBe($"Label '{label.Name}' already exists, cannot create.");
        }
 void Awake()
 {
     if (LCInstance == null)
     {
         LCInstance = this;
     }
     else if (LCInstance != this)
     {
         LCInstance = this;
     }
 }
Beispiel #5
0
        public async void Details_CallsGetByIdOnce()
        {
            // Arrange
            var repoMock = new Mock <IRepository <Label> >();

            repoMock.Setup(repo => repo.GetById(It.IsAny <int>())).ReturnsAsync(_testLabel1);
            var controller = new LabelsController(repoMock.Object);

            // Act
            await controller.Details(_testLabel1.Id);

            // Assert
            repoMock.Verify(repo => repo.GetById(It.IsAny <int>()), Times.Once);
        }
Beispiel #6
0
        public async void Details_ReturnsNotFound_WhenLabelIsNull()
        {
            // Arrange
            var repoMock = new Mock <IRepository <Label> >();

            repoMock.Setup(repo => repo.GetById(It.IsAny <int>())).ReturnsAsync(null as Label);
            var controller = new LabelsController(repoMock.Object);

            // Act
            var result = await controller.Details(null);

            // Assert
            Assert.IsType <NotFoundResult>(result);
        }
Beispiel #7
0
        public async void Details_ReturnsCorrectView()
        {
            // Arrange
            var repoMock = new Mock <IRepository <Label> >();

            repoMock.Setup(repo => repo.GetById(It.IsAny <int>())).ReturnsAsync(_testLabel1);
            var controller = new LabelsController(repoMock.Object);

            // Act
            var result = (ViewResult)await controller.Details(_testLabel1.Id);

            // Assert
            Assert.Null(result.ViewName);
        }
Beispiel #8
0
        public async void Index_CallsGetAllAsListOnce()
        {
            // Arrange
            var repoMock = new Mock <IRepository <Label> >();

            repoMock.Setup(repo => repo.GetAllAsList()).ReturnsAsync(new List <Label> {
            });
            var controller = new LabelsController(repoMock.Object);

            // Act
            await controller.Index();

            // Assert
            repoMock.Verify(repo => repo.GetAllAsList(), Times.Once);
        }
Beispiel #9
0
        public async void Index_ReturnsCorrectView()
        {
            // Arrange
            var repoMock = new Mock <IRepository <Label> >();

            repoMock.Setup(repo => repo.GetAllAsList()).ReturnsAsync(new List <Label> {
            });
            var controller = new LabelsController(repoMock.Object);

            // Act
            var result = (ViewResult)await controller.Index();

            // Assert
            Assert.Null(result.ViewName);
        }
Beispiel #10
0
        public async void Index_ReturnsCorrectList()
        {
            // Arrange
            var list = new List <Label> {
                _testLabel1, _testLabel2
            };
            var repoMock = new Mock <IRepository <Label> >();

            repoMock.Setup(repo => repo.GetAllAsList()).ReturnsAsync(list);
            var controller = new LabelsController(repoMock.Object);

            // Act
            var result = (ViewResult)await controller.Index();

            // Assert
            Assert.Equal(list, result.Model);
        }
        public void PostAsync_Failed_LabelIsNull()
        {
            var mockLabelRepo = new Mock <ILabelRepository>();
            var mockLogger    = new Mock <ILogger <LabelsController> >();
            var mockMapper    = new Mock <IMapper>();

            // Arrange
            var controller = new LabelsController(mockLogger.Object, mockMapper.Object, mockLabelRepo.Object);

            // Act
            var response = controller.PostAsync(null);

            // Assert
            var result = response.Result.Result as ObjectResult;

            result.StatusCode.ShouldBe(400);
            result.Value.ShouldBe($"Label object from body is null.");
        }
        public LabelsControllerTests()
        {
            var mockLabelSet = new Mock <DbSet <Label> >();

            _existingLabel        = TestDataGraph.Labels.ExistingLabel;
            _existingLabelUpdated = TestDataGraph.Labels.UpdatedLabel;
            _newLabel             = TestDataGraph.Labels.NewLabel;
            var labels = TestDataGraph.Labels.LabelsRaw;
            var data   = labels.AsQueryable();

            SetupMockDbSet(mockLabelSet, data);

            SetupMockSetOnMockContext(mockLabelSet);
            _mockRepository = new Mock <LabelRepository>(MockContext.Object);
            _mockRepository.Setup(mr => mr.GetAllAlphabetical()).Returns(Task.FromResult(TestDataGraph.Labels.LabelsAlphabetizedByLabelName));
            _mockRepository.Setup(mr => mr.GetById(_existingLabel.LabelId)).Returns(Task.FromResult(_existingLabel));

            _controller = new LabelsController(_mockRepository.Object);
        }
        public void PutAsync_Succeed()
        {
            var mockLabelRepo = new Mock <ILabelRepository>();
            var mockLogger    = new Mock <ILogger <LabelsController> >();
            var mapper        = new Mapper(new MapperConfiguration(cfg => cfg.AddProfile(new Mappings.MappingProfile())));

            var labelModel = new Models.Label {
                Id = 1, Name = "LabelA"
            };

            mockLabelRepo.Setup(x => x.GetLabelAsync(It.IsAny <int>())).Returns(Task.FromResult(labelModel));
            var labels = new List <Models.Label>()
            {
                labelModel, new Models.Label {
                    Name = "LabelB"
                }
            };

            mockLabelRepo.Setup(x => x.GetLabelsAsync()).Returns(Task.FromResult(labels.AsEnumerable()));
            var newLabelModel = new Models.Label {
                Id = 1, Name = "NewLabel"
            };

            mockLabelRepo.Setup(x => x.UpdateLabelAsync(It.IsAny <Models.Label>())).Returns(Task.FromResult(newLabelModel));

            // Arrange
            var controller = new LabelsController(mockLogger.Object, mapper, mockLabelRepo.Object);

            // Act
            var labelDTO = new DTOs.Label {
                Id = 1, Name = "NewLabel"
            };
            var response = controller.PutAsync(1, labelDTO);

            // Assert
            var result = response.Result.Result as ObjectResult;

            result.StatusCode.ShouldBe(200);
            var returnedLabel = result.Value as DTOs.Label;

            returnedLabel.Name.ShouldBe(labelDTO.Name);
        }
        public void PutAsync_Failed_LabelIdNotIdentical()
        {
            var mockLabelRepo = new Mock <ILabelRepository>();
            var mockLogger    = new Mock <ILogger <LabelsController> >();
            var mockMapper    = new Mock <IMapper>();

            // Arrange
            var controller = new LabelsController(mockLogger.Object, mockMapper.Object, mockLabelRepo.Object);

            // Act
            var label = new DTOs.Label {
                Id = 1, Name = "LabelA"
            };
            var response = controller.PutAsync(2, label);

            // Assert
            var result = response.Result.Result as ObjectResult;

            result.StatusCode.ShouldBe(400);
            result.Value.ShouldBe($"Label id from url and body are not identical.");
        }
        public void PostAsync_Failed_LabelIsNullOrWhiteSpace(string labelName)
        {
            var mockLabelRepo = new Mock <ILabelRepository>();
            var mockLogger    = new Mock <ILogger <LabelsController> >();
            var mockMapper    = new Mock <IMapper>();

            // Arrange
            var controller = new LabelsController(mockLogger.Object, mockMapper.Object, mockLabelRepo.Object);

            // Act
            var label = new DTOs.Label {
                Name = labelName
            };
            var response = controller.PostAsync(label);

            // Assert
            var result = response.Result.Result as ObjectResult;

            result.StatusCode.ShouldBe(400);
            result.Value.ShouldBe($"Label could be neither null nor whitespace.");
        }
        public void PutAsync_Failed_LabelNotFound()
        {
            var mockLabelRepo = new Mock <ILabelRepository>();
            var mockLogger    = new Mock <ILogger <LabelsController> >();
            var mockMapper    = new Mock <IMapper>();

            mockLabelRepo.Setup(x => x.GetLabelAsync(It.IsAny <int>())).Returns(Task.FromResult <Models.Label>(null));

            // Arrange
            var controller = new LabelsController(mockLogger.Object, mockMapper.Object, mockLabelRepo.Object);

            // Act
            var label = new DTOs.Label {
                Id = 1, Name = "NewLabelA"
            };
            var response = controller.PutAsync(1, label);

            // Assert
            var result = response.Result.Result as ObjectResult;

            result.StatusCode.ShouldBe(404);
            result.Value.ShouldBe($"Label with id '{label.Id}' not found.");
        }
        public void ShouldCreateInstance_NotNull_Success()
        {
            var controller = new LabelsController(_context, _mockCacheService.Object);

            Assert.NotNull(controller);
        }