Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 3 additions & 16 deletions Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -2,30 +2,18 @@

import PackageDescription

var testingDependencies: [Package.Dependency] = []
var testingTargets: [Target] = []

let isTestingEnabled = /*TESTING_FLAG*/false/*TESTING_FLAG*/
if isTestingEnabled {
testingDependencies = [
.package(url: "https://github.com/Quick/Quick", exact: "3.1.2"),
.package(url: "https://github.com/Quick/Nimble", exact: "9.2.1"),
]
testingTargets = [
.testTarget(name: "TPPDFTests", dependencies: [
"TPPDF",
"Quick",
"Nimble",
], resources: [
.testTarget(name: "TPPDFTests", dependencies: ["TPPDF"], resources: [
.copy("resources/graphics-fixture.gif"),
.copy("resources/sample.pdf"),
.copy("resources/image-fixture.jpg"),
.copy("resources/table-content-fixture.png"),
]),
.testTarget(name: "TPPDFIntegrationTests", dependencies: [
"TPPDF",
"Quick",
"Nimble",
], resources: [
.testTarget(name: "TPPDFIntegrationTests", dependencies: ["TPPDF"], resources: [
.copy("resources/50-pages.pdf"),
]),
]
Expand All @@ -44,7 +32,6 @@ let package = Package(
products: [
.library(name: "TPPDF", targets: ["TPPDF"]),
],
dependencies: testingDependencies,
targets: [
.target(name: "TPPDF", path: "Source"),
] + testingTargets
Expand Down
29 changes: 0 additions & 29 deletions Tests/TPPDFTests/API/Table/Sections/PDFTableRowSpec.swift

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
//
// PDFTableRowSubscriptsTests.swift
// TPPDF
//
// Created by Philip Niedertscheider on 23.09.2020.
// Copyright © 2016-2026 techprimate GmbH. All rights reserved.
//

import Testing
@testable import TPPDF

struct PDFTableRowSubscriptsTests {
@Test func rowSubscriptReturnsCellsAtRequestedRowIndex() {
// Arrange
let table = PDFTable(rows: 3, columns: 3)
let expectedCells = table.cells[1]

// Act
let cells = table[row: 1].cells

// Assert
#expect(cells == expectedCells)
}
}
25 changes: 25 additions & 0 deletions Tests/TPPDFTests/API/Table/Sections/PDFTableRowTests.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
//
// PDFTableRowTests.swift
// TPPDF
//
// Created by Philip Niedertscheider on 23.09.2020.
// Copyright © 2016-2026 techprimate GmbH. All rights reserved.
//

import Testing
@testable import TPPDF

struct PDFTableRowTests {
@Test func settingAllRowsAlignmentAppliesSameAlignmentToEveryRow() {
// Arrange
let table = PDFTable(rows: 3, columns: 3)
let alignment: [PDFTableCellAlignment] = [.left, .center, .right]

// Act
table.rows.allRowsAlignment = alignment
let result = table.rows.alignment

// Assert
#expect(result == [alignment, alignment, alignment])
}
}

This file was deleted.

55 changes: 55 additions & 0 deletions Tests/TPPDFTests/Layout/PDFContainerTests.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
//
// PDFContainerTests.swift
// TPPDF
//
// Created by Philip Niedertscheider on 11.09.2017.
// Copyright © 2016-2026 techprimate GmbH. All rights reserved.
//

import Testing
@testable import TPPDF

struct PDFContainerTests {
@Test(arguments: [
(0, false, false, false, false),
(1, true, false, true, false), (2, true, false, false, false), (3, true, false, false, true),
(4, false, false, true, false), (5, false, false, false, false), (6, false, false, false, true),
(7, false, true, true, false), (8, false, true, false, false), (9, false, true, false, true),
])
func containerIdentifiesItsRegionAndHorizontalAlignment(
index: Int, expectedHeader: Bool, expectedFooter: Bool, expectedLeft: Bool, expectedRight: Bool
) {
// Arrange
let containers: [PDFContainer] = [
.none, .headerLeft, .headerCenter, .headerRight, .contentLeft, .contentCenter, .contentRight,
.footerLeft, .footerCenter, .footerRight,
]
let container = containers[index]

// Act
let header = container.isHeader
let footer = container.isFooter
let left = container.isLeft
let right = container.isRight

// Assert
#expect(header == expectedHeader)
#expect(footer == expectedFooter)
#expect(left == expectedLeft)
#expect(right == expectedRight)
}

@Test func allContainersIncludesEveryPositionInOrderAndExcludesNone() {
// Arrange
let expected: [PDFContainer] = [
.headerLeft, .headerCenter, .headerRight, .contentLeft, .contentCenter, .contentRight,
.footerLeft, .footerCenter, .footerRight,
]

// Act
let containers = PDFContainer.all

// Assert
#expect(containers == expected)
}
}
107 changes: 0 additions & 107 deletions Tests/TPPDFTests/Layout/PDFContainer_Spec.swift

This file was deleted.

26 changes: 26 additions & 0 deletions Tests/TPPDFTests/Layout/PDFIndentationObjectEquatableTests.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
//
// PDFIndentationObjectEquatableTests.swift
// TPPDF
//
// Created by Philip Niedertscheider on 11.16.2017.
// Copyright © 2016-2026 techprimate GmbH. All rights reserved.
//

import CoreGraphics
import Testing
@testable import TPPDF

struct PDFIndentationObjectEquatableTests {
@Test(arguments: [(0.0, true, true, true), (10.0, true, true, false), (0.0, false, true, false), (0.0, true, false, false)])
func equalityDependsOnIndentationSideAndSectionScope(indentation: Double, left: Bool, insideSection: Bool, expectedEquality: Bool) {
// Arrange
let object = PDFIndentationObject(indentation: 0, left: true, insideSectionColumn: true)
let otherObject = PDFIndentationObject(indentation: CGFloat(indentation), left: left, insideSectionColumn: insideSection)

// Act
let isEqual = object == otherObject

// Assert
#expect(isEqual == expectedEquality)
}
}
47 changes: 47 additions & 0 deletions Tests/TPPDFTests/Layout/PDFIndentationObjectTests.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
//
// PDFIndentationObjectTests.swift
// TPPDF
//
// Created by Philip Niedertscheider on 11.14.2017.
// Copyright © 2016-2026 techprimate GmbH. All rights reserved.
//

import CoreGraphics
import Testing
@testable import TPPDF

struct PDFIndentationObjectTests {
@Test func initializingPreservesIndentationSideAndSectionScope() {
// Arrange
let indentation: CGFloat = 20
let left = false
let insideSectionColumn = false

// Act
let object = PDFIndentationObject(indentation: indentation, left: left, insideSectionColumn: insideSectionColumn)

// Assert
#expect(object.indentation == indentation)
#expect(object.left == left)
#expect(object.insideSectionColumn == insideSectionColumn)
}

@Test(arguments: [false, true])
func calculatingSetsIndentationOnChosenSideAndReturnsObject(left: Bool) throws {
// Arrange
let object = PDFIndentationObject(indentation: 20, left: left, insideSectionColumn: false)
let generator = PDFGenerator(document: PDFDocument(format: .a4))
let container = PDFContainer.contentLeft

// Act
let result = try object.calculate(generator: generator, container: container)
let indentation = left ? generator.layout.indentation.leftIn(container: container)
: generator.layout.indentation.rightIn(container: container)

// Assert
#expect(indentation == object.indentation)
#expect(result.count == 1)
#expect(result.first?.0 == container)
#expect(result.first?.1 as? PDFIndentationObject == object)
}
}
Loading
Loading