/// <summary>
        /// Initializes a new instance of the <see cref="InsolvencyOrderAddressCollectionResponse" /> class.
        /// </summary>
        /// <param name="addressResolver">The <see cref="IAddressResolver" /> used for resolving address routes.</param>
        /// <param name="pagingLinks">The <see cref="IPagingLinks" /> used to generate a paged resource.</param>
        /// <param name="requestReader">The <see cref="IRequestReader" /> used to read the request.</param>
        public InsolvencyOrderAddressCollectionResponse(IAddressResolver addressResolver, IPagingLinks pagingLinks, IRequestReader requestReader)
        {
            Requires.NotNull(addressResolver, nameof(addressResolver));
            Requires.NotNull(pagingLinks, nameof(pagingLinks));
            Requires.NotNull(requestReader, nameof(requestReader));

            this.addressResolver = addressResolver;
            this.pagingLinks     = pagingLinks;
            this.requestReader   = requestReader;
        }
        public void ConstructingADisputeCollectionResponse_WithNullPagingLink_ThrowsArgumentNullException()
        {
            // Arrange
            var          mockedRequestReader   = new Mock <IRequestReader>();
            var          mockedAddressResolver = new Mock <IAddressResolver>();
            IPagingLinks pagingLinks           = null;

            // Act
            void ResponseObject() => new DisputeCollectionResponse(
                mockedAddressResolver.Object,
                pagingLinks,
                mockedRequestReader.Object);

            // Assert
            Assert.ThrowsException <ArgumentNullException>((Action)ResponseObject);
        }
        public void ConstructingAInsolvencyOrderCollectionResponse_WithNullPagingLink_ThrowsArgumentNullException()
        {
            // Arrange
            const IPagingLinks pagingLinks = null;

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

            // Act
            void ConstructResponseObject() =>
            new InsolvencyOrderCollectionResponse(addressResolverMock.Object, pagingLinks, requestReaderMock.Object, includeReader.Object);

            // Assert
            Assert.ThrowsException <ArgumentNullException>((Action)ConstructResponseObject);
        }
        public void ConstructingADisputeCollectionResponse_WithNullPagingLink_HasCorrectParameterNameInException()
        {
            // Arrange
            const string expectedParameterName = "pagingLinks";

            var          mockedRequestReader   = new Mock <IRequestReader>();
            var          mockedAddressResolver = new Mock <IAddressResolver>();
            IPagingLinks pagingLinks           = null;

            // Act
            void ResponseObject() => new DisputeCollectionResponse(
                mockedAddressResolver.Object,
                pagingLinks,
                mockedRequestReader.Object);

            // Assert
            ExceptionAssert.HasCorrectParameterNameForArgumentException(ResponseObject, expectedParameterName);
        }
        public void ConstructingAInsolvencyOrderCollectionResponse_WithNullPagingLink_HasCorrectParameterNameInException()
        {
            // Arrange
            const string       expectedParameterName = "pagingLinks";
            const IPagingLinks pagingLinks           = null;

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

            // Act
            void ConstructResponseObject() =>
            new InsolvencyOrderCollectionResponse(addressResolverMock.Object, pagingLinks, requestReaderMock.Object, includeReader.Object);

            // Assert
            ExceptionAssert.HasCorrectParameterNameForArgumentException(
                ConstructResponseObject,
                expectedParameterName);
        }