[InlineData("00000000-0000-0000-0000-000000000000")] // empty Guid
        public void Get_IdIsInvalid(string id)
        {
            // Arrange
            var controller = new V7ServiceCollectionController(serviceCollectionServiceMockSetup.Object,
                                                               commonService, serviceService, userOrganizationServiceMockSetup.Object, settings, logger);

            // Act
            Action act = () => controller.Get(id);

            // Assert
            act.ShouldThrow <Exception>();
        }
        public void PostServiceCollection_ServiceCollectionServiceThrowsException()
        {
            // Arrange
            serviceCollectionServiceMockSetup.Setup(s => s.AddServiceCollection(It.IsAny <VmOpenApiServiceCollectionInVersionBase>(), false, defaultVersion, null)).Throws <Exception>();
            var controller = new V7ServiceCollectionController(serviceCollectionServiceMockSetup.Object,
                                                               commonService, serviceService, userService, settings, logger);

            // Act
            Action act = () => controller.Post(new V7VmOpenApiServiceCollectionIn());

            // Assert
            act.ShouldThrow <Exception>();
        }
        public void Get_ServiceCollectionNotExists()
        {
            // Arrange
            serviceCollectionServiceMockSetup.Setup(s => s.GetServiceCollectionById(It.IsAny <Guid>(), defaultVersion, It.IsAny <bool>())).Returns((V7VmOpenApiServiceCollection)null);
            var controller = new V7ServiceCollectionController(serviceCollectionServiceMockSetup.Object,
                                                               commonService, serviceService, userOrganizationServiceMockSetup.Object, settings, logger);

            // Act
            var result = controller.Get(strId);

            // Assert
            result.Should().BeOfType <NotFoundObjectResult>();
        }
        public void PutServiceCollectionBySource_SourceIdNotValid(string sourceId)
        {
            // Arrange
            var controller = new V7ServiceCollectionController(serviceCollectionServiceMockSetup.Object,
                                                               commonService, serviceService, userService, settings, logger);

            // Act
            var result = controller.PutBySource(sourceId, new V7VmOpenApiServiceCollectionInBase());

            // Assert
            var notFoundResult = Assert.IsType <NotFoundObjectResult>(result);

            Assert.IsType <VmError>(notFoundResult.Value);
        }
        public void PutServiceCollectionBySource_RequestIsNull()
        {
            // Arrange
            var controller = new V7ServiceCollectionController(serviceCollectionServiceMockSetup.Object,
                                                               commonService, serviceService, userService, settings, logger);

            // Act
            var result = controller.PutBySource("sourceId", null);

            // Assert
            var badResult = Assert.IsType <BadRequestObjectResult>(result);

            Assert.IsType <SerializableError>(badResult.Value);
        }
        public void PutServiceCollection_ServiceCollectionNotExists()
        {
            // Arrange
            serviceCollectionServiceMockSetup.Setup(s => s.ServiceCollectionExists(id)).Returns(false);
            var controller = new V7ServiceCollectionController(serviceCollectionServiceMockSetup.Object,
                                                               commonService, serviceService, userService, settings, logger);

            // Act
            var result = controller.Put(strId, new V7VmOpenApiServiceCollectionInBase());

            // Assert
            var notFoundResult = Assert.IsType <NotFoundObjectResult>(result);

            Assert.IsType <VmError>(notFoundResult.Value);
        }
        public void Get_ServiceCollectionExists()
        {
            // Arrange
            serviceCollectionServiceMockSetup.Setup(s => s.GetServiceCollectionById(It.IsAny <Guid>(), defaultVersion, It.IsAny <bool>())).Returns(new V7VmOpenApiServiceCollection());
            var controller = new V7ServiceCollectionController(serviceCollectionServiceMockSetup.Object,
                                                               commonService, serviceService, userOrganizationServiceMockSetup.Object, settings, logger);

            // Act
            var result = controller.Get(strId);

            // Assert
            var okResult = Assert.IsType <OkObjectResult>(result);

            Assert.IsAssignableFrom <V7VmOpenApiServiceCollection>(okResult.Value);
        }
        public void PostServiceCollection_RequestIsNotValid()
        {
            // Arrange
            var controller = new V7ServiceCollectionController(serviceCollectionServiceMockSetup.Object,
                                                               commonService, serviceService, userOrganizationServiceMockSetup.Object, settings, logger);

            controller.ModelState.AddModelError("Request", "NotValid");

            // Act
            var result = controller.Post(new V7VmOpenApiServiceCollectionIn());

            // Assert
            var badResult = Assert.IsType <BadRequestObjectResult>(result);

            Assert.IsType <SerializableError>(badResult.Value);
        }
        public void PutServiceCollectionBySource_SourceIdNotFound()
        {
            // Arrange
            var sourceId = "sourceId";

            serviceCollectionServiceMockSetup.Setup(s => s.GetServiceCollectionBySource(sourceId, 0, false, null)).Returns((V7VmOpenApiServiceCollection)null);
            var controller = new V7ServiceCollectionController(serviceCollectionServiceMockSetup.Object,
                                                               commonService, serviceService, userService, settings, logger);

            // Act
            var result = controller.PutBySource(sourceId, new V7VmOpenApiServiceCollectionInBase());

            // Assert
            var badResult = Assert.IsType <BadRequestObjectResult>(result);

            Assert.IsType <SerializableError>(badResult.Value);
        }
        public void PostServiceCollection_RequestIsValid()
        {
            // Arrange
            serviceCollectionServiceMockSetup.Setup(s => s.AddServiceCollection(It.IsAny <VmOpenApiServiceCollectionInVersionBase>(), false, defaultVersion, null))
            .Returns(new V7VmOpenApiServiceCollection());
            userServiceMockSetup.Setup(s => s.UserHighestRole()).Returns(UserRoleEnum.Eeva);
            var controller = new V7ServiceCollectionController(serviceCollectionServiceMockSetup.Object,
                                                               commonService, serviceService, userService, settings, logger);

            // Act
            var result = controller.Post(new V7VmOpenApiServiceCollectionIn());

            // Assert
            var okResult = Assert.IsType <OkObjectResult>(result);

            Assert.IsType <V7VmOpenApiServiceCollection>(okResult.Value);
        }
        public void Get_ServiceCollections_CanCall()
        {
            // Arrange
            serviceCollectionServiceMockSetup.Setup(s => s.GetServiceCollections(null, pageNumber, It.IsAny <int>(), It.IsAny <bool>()))
            .Returns(new V3VmOpenApiGuidPage(pageNumber, pageSize));

            var controller = new V7ServiceCollectionController(serviceCollectionServiceMockSetup.Object,
                                                               commonService, serviceService, userOrganizationServiceMockSetup.Object, settings, logger);

            // Act
            var result = controller.Get(null, pageNumber);

            // Assert
            var okResult = Assert.IsType <OkObjectResult>(result);
            var model    = Assert.IsAssignableFrom <V3VmOpenApiGuidPage>(okResult.Value);

            Assert.Equal(pageNumber, model.PageNumber);
        }
        public void PutServiceCollectionBySource_CanModifyServiceCollection()
        {
            // Arrange
            var sourceId = "sourceId";

            serviceCollectionServiceMockSetup.Setup(s => s.GetServiceCollectionBySource(sourceId, 0, false, null))
            .Returns(new V7VmOpenApiServiceCollection {
                PublishingStatus = PublishingStatus.Published.ToString()
            });
            serviceCollectionServiceMockSetup.Setup(s => s.SaveServiceCollection(It.IsAny <VmOpenApiServiceCollectionInVersionBase>(), It.IsAny <bool>(), version, sourceId, null))
            .Returns(new V7VmOpenApiServiceCollection());
            var controller = new V7ServiceCollectionController(serviceCollectionServiceMockSetup.Object,
                                                               commonService, serviceService, userService, settings, logger);

            // Act
            var result = controller.PutBySource(sourceId, new V7VmOpenApiServiceCollectionInBase());

            // Assert
            var okResult = Assert.IsType <OkObjectResult>(result);

            Assert.IsType <V7VmOpenApiServiceCollection>(okResult.Value);
        }
        public void PutServiceCollection_CanModifyServiceCollection()
        {
            // Arrange
            serviceCollectionServiceMockSetup.Setup(s => s.ServiceCollectionExists(id)).Returns(true);
            serviceCollectionServiceMockSetup.Setup(s => s.GetServiceCollectionById(id, 0, false))
            .Returns(new V7VmOpenApiServiceCollection()
            {
                PublishingStatus = PublishingStatus.Published.ToString()
            });
            serviceCollectionServiceMockSetup.Setup(s => s.SaveServiceCollection(It.IsAny <VmOpenApiServiceCollectionInVersionBase>(), It.IsAny <bool>(), defaultVersion, null, null))
            .Returns(new V7VmOpenApiServiceCollection());
            var controller = new V7ServiceCollectionController(serviceCollectionServiceMockSetup.Object,
                                                               commonService, serviceService, userService, settings, logger);

            // Act
            var result = controller.Put(strId, new V7VmOpenApiServiceCollectionInBase());

            // Assert
            var okResult = Assert.IsType <OkObjectResult>(result);

            Assert.IsType <V7VmOpenApiServiceCollection>(okResult.Value);
        }