         } catch {
             print(error)
         }
+        
+        testNestedModel1 = TestNestedModel(id: 1, name: "nestedModel1")
+        testNestedModel2 = TestNestedModel(id: 2, name: "nestedModel2")
     }
     
     override func tearDown() {
         testJSON = nil
+        testNestedModel1 = nil
+        testNestedModel2 = nil
         
         super.tearDown()
     }
+    
+    // MARK: - Operator <~~
     
     func testDecodeOperatorForInvalidReturnsDecoderDecode() {
         let resultInvalid: String? = "invalid" <~~ testJSON!

class OperatorTests: XCTestCase {
    
    var testJSON: JSON? = [:]
    
    override func setUp() {
        super.setUp()

        XCTAssertTrue((result == decoderResult), "<~~ for enum value should return same as Decoder.decodeEnum")
    }
    
    func testDecodeOperatorEnumArrayReturnsDecoderDecodeArray() {
        let result: [TestModel.EnumValue]? = "enumValueArray" <~~ testJSON!
        let resultElement1: TestModel.EnumValue = result![0]
        let resultElement2: TestModel.EnumValue = result![1]
