makeTestData(); Session::start(); $this->faker = \Faker\Factory::create(); Model::reguard(); } public function testIllegalPropertiesInClientSettings() { $settings = [ 'currency_id' => '1', 'translations' => [ 'email' => 'legal@eagle.com', ], ]; $data = [ 'name' => $this->faker->firstName(), 'settings' => $settings, ]; $response = false; try { $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), 'X-API-TOKEN' => $this->token, ])->post('/api/v1/clients/', $data); } catch (ValidationException $e) { $message = json_decode($e->validator->getMessageBag(), 1); nlog($message); } $response->assertStatus(200); $arr = $response->json(); $this->assertFalse(array_key_exists('translations', $arr['data']['settings'])); } public function testClientLanguageCodeIllegal() { $data = [ 'name' => $this->faker->firstName(), 'id_number' => 'Coolio', 'language_code' => 'not_really_a_VALID-locale', ]; $response = false; try { $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), 'X-API-TOKEN' => $this->token, ])->post('/api/v1/clients/', $data); } catch (ValidationException $e) { $message = json_decode($e->validator->getMessageBag(), 1); nlog($message); } $response->assertStatus(200); $arr = $response->json(); $this->assertFalse(array_key_exists('language_id', $arr['data']['settings'])); } public function testClientLanguageCodeValidationTrue() { $data = [ 'name' => $this->faker->firstName(), 'id_number' => 'Coolio', 'language_code' => 'de', ]; $response = false; try { $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), 'X-API-TOKEN' => $this->token, ])->post('/api/v1/clients/', $data); } catch (ValidationException $e) { $message = json_decode($e->validator->getMessageBag(), 1); nlog($message); } $response->assertStatus(200); $arr = $response->json(); $this->assertEquals('3', $arr['data']['settings']['language_id']); } public function testClientCountryCodeValidationTrue() { $data = [ 'name' => $this->faker->firstName(), 'id_number' => 'Coolio', 'country_code' => 'AM', ]; $response = false; try { $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), 'X-API-TOKEN' => $this->token, ])->post('/api/v1/clients/', $data); } catch (ValidationException $e) { $message = json_decode($e->validator->getMessageBag(), 1); nlog($message); } $response->assertStatus(200); } public function testClientNoneValidation() { $data = [ 'name' => $this->faker->firstName(), 'number' => '', ]; $response = false; try { $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), 'X-API-TOKEN' => $this->token, ])->post('/api/v1/clients/', $data); } catch (ValidationException $e) { $message = json_decode($e->validator->getMessageBag(), 1); nlog($message); } $response->assertStatus(200); } public function testClientNullValidation() { $data = [ 'name' => $this->faker->firstName(), 'number' => null, ]; $response = false; try { $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), 'X-API-TOKEN' => $this->token, ])->post('/api/v1/clients/', $data); } catch (ValidationException $e) { $message = json_decode($e->validator->getMessageBag(), 1); nlog($message); } $response->assertStatus(200); } public function testClientCountryCodeValidationTrueIso3() { $data = [ 'name' => $this->faker->firstName(), 'id_number' => 'Coolio', 'country_code' => 'ARM', ]; $response = false; try { $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), 'X-API-TOKEN' => $this->token, ])->post('/api/v1/clients/', $data); } catch (ValidationException $e) { $message = json_decode($e->validator->getMessageBag(), 1); nlog($message); } $response->assertStatus(200); } public function testClientCountryCodeValidationFalse() { $data = [ 'name' => $this->faker->firstName(), 'id_number' => 'Coolio', 'country_code' => 'AdfdfdfM', ]; $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), 'X-API-TOKEN' => $this->token, ])->post('/api/v1/clients/', $data); $response->assertStatus(302); } public function testClientPost() { $data = [ 'name' => $this->faker->firstName(), ]; $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), 'X-API-TOKEN' => $this->token, ])->post('/api/v1/clients', $data); $response->assertStatus(200); } public function testDuplicateNumberCatch() { $data = [ 'name' => $this->faker->firstName(), 'number' => 'iamaduplicate', ]; $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), 'X-API-TOKEN' => $this->token, ])->post('/api/v1/clients', $data); $response->assertStatus(200); $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), 'X-API-TOKEN' => $this->token, ])->post('/api/v1/clients', $data); $response->assertStatus(302); } public function testClientPut() { $data = [ 'name' => $this->faker->firstName(), 'id_number' => 'Coolio', ]; $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), 'X-API-TOKEN' => $this->token, ])->put('/api/v1/clients/'.$this->encodePrimaryKey($this->client->id), $data); $response->assertStatus(200); $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), 'X-API-TOKEN' => $this->token, ])->put('/api/v1/clients/'.$this->encodePrimaryKey($this->client->id), $data); $response->assertStatus(200); $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), 'X-API-TOKEN' => $this->token, ])->post('/api/v1/clients/', $data); $response->assertStatus(302); } public function testClientGet() { $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), 'X-API-TOKEN' => $this->token, ])->get('/api/v1/clients/'.$this->encodePrimaryKey($this->client->id)); $response->assertStatus(200); } public function testClientNotArchived() { $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), 'X-API-TOKEN' => $this->token, ])->get('/api/v1/clients/'.$this->encodePrimaryKey($this->client->id)); $arr = $response->json(); $this->assertEquals(0, $arr['data']['archived_at']); } public function testClientArchived() { $data = [ 'ids' => [$this->encodePrimaryKey($this->client->id)], ]; $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), 'X-API-TOKEN' => $this->token, ])->post('/api/v1/clients/bulk?action=archive', $data); $arr = $response->json(); $this->assertNotNull($arr['data'][0]['archived_at']); } public function testClientRestored() { $data = [ 'ids' => [$this->encodePrimaryKey($this->client->id)], ]; $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), 'X-API-TOKEN' => $this->token, ])->post('/api/v1/clients/bulk?action=restore', $data); $arr = $response->json(); $this->assertEquals(0, $arr['data'][0]['archived_at']); } public function testClientDeleted() { $data = [ 'ids' => [$this->encodePrimaryKey($this->client->id)], ]; $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), 'X-API-TOKEN' => $this->token, ])->post('/api/v1/clients/bulk?action=delete', $data); $arr = $response->json(); $this->assertTrue($arr['data'][0]['is_deleted']); } public function testClientCurrencyCodeValidationTrue() { $data = [ 'name' => $this->faker->firstName(), 'id_number' => 'Coolio', 'currency_code' => 'USD', ]; $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), 'X-API-TOKEN' => $this->token, ])->post('/api/v1/clients/', $data); $response->assertStatus(200); } public function testClientCurrencyCodeValidationFalse() { $data = [ 'name' => $this->faker->firstName(), 'id_number' => 'Coolio', 'currency_code' => 'R', ]; $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), 'X-API-TOKEN' => $this->token, ])->post('/api/v1/clients/', $data); $response->assertStatus(302); } }