private TestableXpsPrintingDocumentPaginator GetPaginator(params int[] pageIds)
        {
            var pages = pageIds.Select(id => (IPage) new PageStub(id));

            _documentStub = new DocumentStub(pages);
            return(new TestableXpsPrintingDocumentPaginator(_documentStub));
        }
            public void Initializes_all_values_with_document_path()
            {
                //Arrange
                const string   subject          = "subject";
                const string   message          = "message";
                const FileType fileType         = FileType.Txt;
                const string   expectedMimeType = "text/plain";

                var documentPath = DocumentFilePath();

                //Act
                var document = new DocumentStub(
                    subject,
                    message,
                    fileType,
                    documentPath
                    );

                var pdfDocumentBytes = File.ReadAllBytes(documentPath);

                //Assert
                Assert.Equal(subject, document.Title);
                Assert.Equal(message, document.Message);
                Assert.Equal(expectedMimeType, document.MimeType);
                Assert.True(pdfDocumentBytes.SequenceEqual(document.Bytes));
            }
        public void GetPage_SomePageReturningNullInDocument_Throws()
        {
            var pages = new IPage[] { new PageStub(0), new PageStub(1), null, new PageStub(3) };
            var doc   = new DocumentStub(pages);
            var sut   = new XpsPrintingDocumentPaginator(doc);

            sut.GetPage(2);
        }
            public void Returns_file_name_with_date()
            {
                //Arrange

                //Act
                var document = new DocumentStub("title", "message", FileType.Txt, new byte[] { 0xb });

                //Assert
                Assert.True(document.FileName.Contains(DateTime.Now.ToString("yyyyMMdd")) && document.FileName.Contains("document"));
            }
            public void Initializes_all_values_with_document_bytes()
            {
                //Arrange
                const string   subject          = "subject";
                const string   message          = "message";
                const FileType fileType         = FileType.Pdf;
                const string   expectedMimeType = "application/pdf";

                var pdfDocumentBytes = CoreDomainUtility.GetPdfDocumentBytes();

                //Act
                var document = new DocumentStub(
                    subject,
                    message,
                    fileType,
                    pdfDocumentBytes
                    );

                //Assert
                Assert.Equal(subject, document.Title);
                Assert.Equal(message, document.Message);
                Assert.Equal(expectedMimeType, document.MimeType);
                Assert.True(pdfDocumentBytes.SequenceEqual(document.Bytes));
            }