         XCTAssertEqual(parsingError, .IllegalPeerID)
     }
 
-    func testInitWithStringHasNotNumberGeneration() {
-        let string = "eqwer:not_a_number"
+    func testInitWithStringHasNoSeparatorCausesError() {
+        let string = String.random(length: 4)
+        var parsingError: ThaliCoreError?
+        do {
+            let _ = try Peer(stringValue: string)
+        } catch let peerErr as ThaliCoreError {
+            parsingError = peerErr
+        } catch _ {
+        }
+        XCTAssertEqual(parsingError, .IllegalPeerID)
+    }
+
+    func testInitWithStringHasInvalidUUIDPartCausesError() {
+        let string = "---" + ":" + "0"
+        var parsingError: ThaliCoreError?
+        do {
+            let _ = try Peer(stringValue: string)
+        } catch let peerErr as ThaliCoreError {
+            parsingError = peerErr
+        } catch _ {
+        }
+        XCTAssertEqual(parsingError, .IllegalPeerID)
+    }
+
+    func testInitWithStringHasNotNumberGenerationCausesError() {
+        let string = String.random(length: 4) + ":" + "not_a_number"
         var parsingError: ThaliCoreError?
         do {
             let _ = try Peer(stringValue: string)

        }
    }

    func testInitWithStringHasNotEBNFormError() {
        let string = "eqwer:asdf:aasdf"
        var parsingError: ThaliCoreError?
        do {
            let _ = try Peer(stringValue: string)

        XCTAssertEqual(peer.generation + 1, nextGenPeer.generation)
    }

    func testStringValueHasCorrectForm() {
        for i in 0...0xF {
            let uuid = NSUUID().UUIDString
            let string = "\(uuid):\(String(i, radix: 16))"
