         let expectedResult = self.mockSuperview.constraints
         let actualResult: [NSLayoutConstraint] = [bottomConstraint]
         
-        XCTAssertEqual(expectedResult, actualResult, "Error: expected constraints to contain just the bottomConstraint but instead it does not it contains \(expectedResult.count) constraints")
+        XCTAssertEqual(expectedResult, actualResult, "Error: expected constraints to contain just the bottom constraint but instead it does not it contains \(expectedResult.count) constraints")
     }
     
     func testAddBottomConstraint_CreatesBottomConstraint() {
         
         // When
         
+        let bottomConstraint: NSLayoutConstraint = self.mockView.addBottomConstraint(toView: self.mockSuperview, attribute: .Bottom, relation: .LessThanOrEqual, constant: 10.0);
+        
+        // Then
+        
+        self.verify(bottomConstraint, firstView: self.mockView, firstAttribute: .Bottom, secondView: self.mockSuperview, secondAttribute: .Bottom, relation: .LessThanOrEqual, constant: 10.0)
+    }
+
+    func testAddBottomConstraint_CreatesBottomConstraintWithDefaultValues() {
+
+        // When
+
         let bottomConstraint: NSLayoutConstraint = self.mockView.addBottomConstraint(toView: self.mockSuperview, attribute: .Bottom, relation: .Equal, constant: 0.0);
-        
-        // Then
-        
+
+        // Then
+
         self.verify(bottomConstraint, firstView: self.mockView, firstAttribute: .Bottom, secondView: self.mockSuperview, secondAttribute: .Bottom, relation: .Equal, constant: 0.0)
     }
-    
-    
+
+
+    // MARK: - Height
+
+    func testAddHeightConstraint_AddsHeightConstraint() {
+
+        // When
+
+        let heightConstraint: NSLayoutConstraint = self.mockView.addHeightConstraint(toView: self.mockSuperview, relation: .Equal, constant: 0.0)
+
+        // Then
+
+        let expectedResult = self.mockSuperview.constraints
+        let actualResult: [NSLayoutConstraint] = [heightConstraint]
+
+        XCTAssertEqual(expectedResult, actualResult, "Error: expected constraints to contain just the bottom constraint but instead it does not it contains \(expectedResult.count) constraints")
+    }
+
+    func testAddHeightConstraint_CreatesHeightConstraint() {
+
+        // When
+
+        let heightConstraint: NSLayoutConstraint = self.mockView.addHeightConstraint(toView: self.mockSuperview, relation: .LessThanOrEqual, constant: 10.0);
+
+        // Then
+
+        self.verify(heightConstraint, firstView: self.mockView, firstAttribute: .Height, secondView: self.mockSuperview, secondAttribute: .Height, relation: .LessThanOrEqual, constant: 10.0)
+    }
+
+    func testAddHeightConstraint_CreatesHeightConstraintWithDefaultValues() {
+
+        // When
+
+        let heightConstraint: NSLayoutConstraint = self.mockView.addHeightConstraint(toView: self.mockSuperview)
+
+        // Then
+
+        self.verify(heightConstraint, firstView: self.mockView, firstAttribute: .Height, secondView: self.mockSuperview, secondAttribute: .Height, relation: .Equal, constant: 0.0)
+    }
+
+
+    // MARK: - Width
+
+    func testAddWidthConstraint_AddsWidthConstraint() {
+
+        // When
+
+        let widthConstraint: NSLayoutConstraint = self.mockView.addWidthConstraint(toView: self.mockSuperview, relation: .Equal, constant: 0.0)
+
+        // Then
+
+        let expectedResult = self.mockSuperview.constraints
+        let actualResult: [NSLayoutConstraint] = [widthConstraint]
+
+        XCTAssertEqual(expectedResult, actualResult, "Error: expected constraints to contain just the width constraint but instead it does not it contains \(expectedResult.count) constraints")
+    }
+
+    func testAddWidthConstraint_CreatesWidthConstraint() {
+
+        // When
+
+        let widthConstraint: NSLayoutConstraint = self.mockView.addWidthConstraint(toView: self.mockSuperview, relation: .LessThanOrEqual, constant: 10.0);
+
+        // Then
+
+        self.verify(widthConstraint, firstView: self.mockView, firstAttribute: .Width, secondView: self.mockSuperview, secondAttribute: .Width, relation: .LessThanOrEqual, constant: 10.0)
+    }
+
+    func testAddWidthConstraint_CreatesWidthConstraintWithDefaultValues() {
+
+        // When
+
+        let widthConstraint: NSLayoutConstraint = self.mockView.addWidthConstraint(toView: self.mockSuperview)
+
+        // Then
+
+        self.verify(widthConstraint, firstView: self.mockView, firstAttribute: .Width, secondView: self.mockSuperview, secondAttribute: .Width, relation: .Equal, constant: 0.0)
+    }
+
+
     // MARK: - Private
     
     private func verify(constraint: NSLayoutConstraint, firstView: UIView?, firstAttribute: NSLayoutAttribute, secondView: UIView?, secondAttribute: NSLayoutAttribute, relation: NSLayoutRelation?, constant: CGFloat?) {

        let expectedResult = self.mockSuperview.constraints
        let actualResult: [NSLayoutConstraint] = [rightConstraint]
        
        XCTAssertEqual(expectedResult, actualResult, "Error: expected constraints to contain just the rightConstraint but instead it does not it contains \(expectedResult.count) constraints")
    }
    
    func testAddRightConstraint_CreatesRightConstraint() {
        
        // When
        
        let rightConstraint: NSLayoutConstraint = self.mockView.addRightConstraint(toView: self.mockSuperview, attribute: .Left, relation: .Equal, constant: 0.0);

        // Then
        
        self.verify(rightConstraint, firstView: self.mockView, firstAttribute: .Right, secondView: self.mockSuperview, secondAttribute: .Left, relation: .Equal, constant: 0.0)
    }

    func testAddRightConstraint_CreatesRightConstraint_WithDefaultValues() {

        // When


        let expectedResult = self.mockSuperview.constraints
        let actualResult: [NSLayoutConstraint] = [topConstraint]
        
        XCTAssertEqual(expectedResult, actualResult, "Error: expected constraints to contain just the top constraint but instead it does not it contains \(expectedResult.count) constraints")
    }
    
    func testAddTopConstraint_CreatesTopConstraint() {
        
        // When
        
        let topConstraint: NSLayoutConstraint = self.mockView.addTopConstraint(toView: self.mockSuperview, attribute: .Bottom, relation: .LessThanOrEqual, constant: 10.0);

        // Then
        
        self.verify(topConstraint, firstView: self.mockView, firstAttribute: .Top, secondView: self.mockSuperview, secondAttribute: .Bottom, relation: .LessThanOrEqual, constant: 10.0)
    }

    func testAddTopConstraint_CreatesTopConstraintWithDefaultValues() {

        // When

        let topConstraint: NSLayoutConstraint = self.mockView.addTopConstraint(toView: self.mockSuperview)

        // Then

        self.verify(topConstraint, firstView: self.mockView, firstAttribute: .Top, secondView: self.mockSuperview, secondAttribute: .Top, relation: .Equal, constant: 0.0)
    }

    
    // MARK: - Bottom
    
    func testAddBottomConstraint_AddsBottomConstraint() {
        
        // When
        
