             XCTAssertEqual(pdu.data.byteValue, foundData.byteValue)
             XCTAssertEqual("\(pdu.data)", "\(foundData)")
         }
+        
+        do {
+            
+            let data: [UInt8] = [4, 4, 0, 4, 0]
+            
+            guard let pdu = ATTFindInformationRequest(byteValue: data)
+                else { XCTFail("Could not parse"); return }
+            
+            XCTAssertEqual(pdu.byteValue, data)
+            XCTAssertEqual(pdu.startHandle, 0x04)
+            XCTAssertEqual(pdu.endHandle, 0x04)
+        }
+        
+        do {
+            
+            let data: [UInt8] = [5, 1, 4, 0, 2, 41]
+            
+            guard let pdu = ATTFindInformationResponse(byteValue: data)
+                else { XCTFail("Could not parse"); return }
+            
+            XCTAssertEqual(pdu.byteValue, data)
+            
+            guard case let .bit16(attributeData) = pdu.data
+                else { XCTFail("Invalid data"); return }
+            
+            XCTAssertEqual(attributeData.count, 1)
+            XCTAssertEqual(attributeData[0].0, 0x04)
+            XCTAssertEqual(BluetoothUUID.bit16(attributeData[0].1), .clientCharacteristicConfiguration)
+        }
     }
     
     func testConfigureClientDescriptor() {

        }
    }
    
    func testDescriptor() {
        
        do {
            

        ("testWrite", testWrite),
        ("testFindInformation", testFindInformation),
        ("testConfigureClientDescriptor", testConfigureClientDescriptor),
        ("testDiscovery", testDiscovery)
    ]
    
    func testATTOpcode() {
