/**
  * @param int $time
  * @return array
  */
 private function getFriendSignature($time)
 {
     $uid = static::UID;
     $friendUid = static::FRIEND_UID;
     $secret = static::SECRET;
     $base = $time . "_" . $friendUid . "_" . $uid;
     $expected = $this->validator->calculateSignature($base, $secret);
     return [$uid, $friendUid, $secret, $expected];
 }
 public function testUidSignatureWithInvalidSignatureWillThrowException()
 {
     $uid = 'diofu90ifgdf';
     $timestamp = time();
     $signatureValidator = new SignatureValidator();
     $signature = $signatureValidator->calculateSignature($timestamp . '_' . $uid, 'secret');
     $body = sprintf('{
         "UID": "%s",
         "UIDSignature": "invalidSignature",
         "signatureTimestamp": "%d",
         "statusCode": 200,
         "errorCode": 0,
         "statusReason": "OK",
         "callId": "123456",
         "time": "2015-03-22T11:42:25.943Z"
     }', $uid, $timestamp);
     $response = m::mock('GuzzleHttp\\Message\\ResponseInterface');
     $response->shouldReceive('getBody')->andReturn($body);
     static::assertFalse($this->validator->validate($response));
     static::setExpectedException('Graze\\Gigya\\Exceptions\\InvalidUidSignatureException', sprintf("The supplied signature for uid: diofu90ifgdf does not match.\n Expected '%s'\n Supplied 'invalidSignature'", $signature));
     $this->validator->assert($response);
 }