         ("testGCM", testGCM),
         ("testNotification", testNotification),
         ("testNotificationToJSON", testNotificationToJSON),
+        ("testNotificationFields", testNotificationFields),
+        ("testNotificationMessage", testNotificationMessage),
+        ("testNotificationBodyWithTitle", testNotificationBodyWithTitle),
         ("testPushMessage", testPushMessage),
+        ("testPushMessageFields", testPushMessageFields),
         ("testSendMessageToDevice", testSendMessageToDevice),
-        ("testSendMessageToMultipleDevices", testSendMessageToMultipleDevices)
+        ("testSendMessageToMultipleDevices", testSendMessageToMultipleDevices),
+        ("testDeviceGroup", testDeviceGroup),
+        ("testNoDroplet", testNoDroplet),
+        ("testNoDroplet", testNoDroplet2),
+        ("testNoDroplet", testNoDroplet3)
     ]
     
     var drop: Droplet! = nil

        } catch {
            XCTFail()
        }
        XCTAssertNotNil(message)
    }
    

        }
        self.waitForExpectations(timeout: 10.0, handler: nil)
    }
    
    func testDeviceGroup() {
        let gcm = VaporGCM(forDroplet: drop, serverKey: "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...")
        let group = DeviceGroup(operation: .create,
                                name: "appUser-Chris",
                                registrationIds: ["16", "9"])
        let response = try? gcm.sendDeviceGroup(group, forProject: "SENDER_ID")
        XCTAssertNotNil(response)
    }
    
    func testNoDroplet() {
        var drop: Droplet! = self.drop
        let gcm = VaporGCM(forDroplet: drop, serverKey: "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...")
        drop = nil
        do {
            let message = try PushMessage()
            let response = try gcm.send(message, to: "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...")
            XCTAssertNotNil(response)
        } catch InitializeError.missingDroplet {
            print("missingDroplet")
            XCTAssertTrue(true)
        } catch {
            XCTFail()
        }
    }
    
    func testNoDroplet2() {
        var drop: Droplet! = self.drop
        let gcm = VaporGCM(forDroplet: drop, serverKey: "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...")
        drop = nil
        do {
            let message = try PushMessage()
            try gcm.send(message, to: ["1","2","3"], responseHandler: nil)
        } catch InitializeError.missingDroplet {
            print("missingDroplet")
            XCTAssertTrue(true)
        } catch {
            XCTFail()
        }
    }
    
    func testNoDroplet3() {
        var drop: Droplet! = self.drop
        let gcm = VaporGCM(forDroplet: drop, serverKey: "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...")
        drop = nil
        do {
            let group = DeviceGroup(operation: .create,
                                    name: "appUser-Chris",
                                    registrationIds: ["16", "9"])
            _ = try gcm.sendDeviceGroup(group, forProject: "SENDER_ID")
        } catch InitializeError.missingDroplet {
            print("missingDroplet")
            XCTAssertTrue(true)
        } catch {
            XCTFail()
        }
    }
}
