public void ConfiguringAnInsolvencyCollectionAsHal_WithNullUriProvided_ThrowsArgumentNullException()
        {
            // Arrange
            const int numberOfItemsInCollection = 1000;
            const int numberOfPagesInCollection = 100;
            const int currentPage = 20;

            var addressResolverMock = new Mock <IAddressResolver>();
            var pagingLinksMock     = new Mock <IPagingLinks>();
            var requestReaderMock   = new Mock <IRequestReader>();
            var includeReader       = new Mock <IIncludeReader>();

            var responseObject =
                new InsolvencyOrderCollectionResponse(
                    addressResolverMock.Object,
                    pagingLinksMock.Object,
                    requestReaderMock.Object,
                    includeReader.Object);

            var insolvencyOrders = new List <InsolvencyOrderModel>();

            var insolvencyCollection = new CollectionResource <InsolvencyOrderModel>(
                new CollectionResourceInfo(numberOfItemsInCollection, numberOfPagesInCollection, currentPage), insolvencyOrders);

            // Act
            void CreateHalResponse() => responseObject.FormatForHal(insolvencyCollection);

            // Assert
            Assert.ThrowsException <ArgumentNullException>((Action)CreateHalResponse);
        }
        public void ConfiguringAnInsolvencyCollectionAsHal_WithNullDataProvided_HasCorrectParameterNameInException()
        {
            // Arrange
            const string expectedParameterName = "collection";

            CollectionResource <InsolvencyOrderModel> insolvencyCollection = null;
            var addressResolverMock = new Mock <IAddressResolver>();
            var pagingLinksMock     = new Mock <IPagingLinks>();
            var requestReaderMock   = new Mock <IRequestReader>();
            var includeReader       = new Mock <IIncludeReader>();

            var responseObject =
                new InsolvencyOrderCollectionResponse(
                    addressResolverMock.Object,
                    pagingLinksMock.Object,
                    requestReaderMock.Object,
                    includeReader.Object);

            // Act
            void CreateHalResponse() => responseObject.FormatForHal(insolvencyCollection);

            // Assert
            ExceptionAssert.HasCorrectParameterNameForArgumentException(
                CreateHalResponse,
                expectedParameterName);
        }
        public void ConstructingAInsolvencyOrderCollectionResponse_WithAddressResolverProvided_ConstructsInsolvencyOrderCollectionResponse()
        {
            // Arrange
            var addressResolverMock = new Mock <IAddressResolver>();
            var pagingLinksMock     = new Mock <IPagingLinks>();
            var requestReaderMock   = new Mock <IRequestReader>();
            var includeReader       = new Mock <IIncludeReader>();

            // Act
            var responseObject =
                new InsolvencyOrderCollectionResponse(
                    addressResolverMock.Object,
                    pagingLinksMock.Object,
                    requestReaderMock.Object,
                    includeReader.Object);

            // Assert
            Assert.IsNotNull(responseObject);
        }
        public void ConfiguringAnInsolvencyCollectionAsHal_WithNullDataProvided_ThrowsArgumentNullException()
        {
            // Arrange
            CollectionResource <InsolvencyOrderModel> insolvencyCollection = null;
            var addressResolverMock = new Mock <IAddressResolver>();
            var pagingLinksMock     = new Mock <IPagingLinks>();
            var requestReaderMock   = new Mock <IRequestReader>();
            var includeReader       = new Mock <IIncludeReader>();

            var responseObject =
                new InsolvencyOrderCollectionResponse(
                    addressResolverMock.Object,
                    pagingLinksMock.Object,
                    requestReaderMock.Object,
                    includeReader.Object);

            // Act
            void CreateHalResponse() => responseObject.FormatForHal(insolvencyCollection);

            // Assert
            Assert.ThrowsException <ArgumentNullException>((Action)CreateHalResponse);
        }