22 private $createdAttributes = [];
34 $this->assertArrayHasKey(
'attribute_id',
$attribute);
35 $this->assertArrayHasKey(
'attribute_code',
$attribute);
50 'field' =>
'frontend_input',
51 'value' =>
'textarea',
52 'condition_type' =>
'eq',
65 'resourcePath' => self::RESOURCE_PATH .
'?' . http_build_query(
$searchCriteria),
71 'operation' => self::SERVICE_NAME .
'GetList',
76 $this->assertArrayHasKey(
'search_criteria',
$response);
77 $this->assertArrayHasKey(
'total_count',
$response);
78 $this->assertArrayHasKey(
'items',
$response);
81 $this->assertTrue(
$response[
'total_count'] > 0);
82 $this->assertTrue(count(
$response[
'items']) > 0);
84 $this->assertNotNull(
$response[
'items'][0][
'default_frontend_label']);
85 $this->assertNotNull(
$response[
'items'][0][
'attribute_id']);
99 'is_required' =>
true,
100 'entity_type_id' =>
"4",
101 "frontend_input" =>
"select",
102 "is_visible_on_front" =>
true,
103 "is_searchable" =>
true,
104 "is_visible_in_advanced_search" =>
true,
105 "is_filterable" =>
true,
106 "is_filterable_in_search" =>
true,
109 $this->assertEquals(
'default_label',
$attribute[
'default_frontend_label']);
110 $this->assertEquals(
'front_lbl_store1',
$attribute[
'frontend_labels'][0][
'label']);
111 foreach ($expectedData as $key =>
$value) {
116 $this->assertEquals(
'Default Blue',
$attribute[
'options'][1][
'label']);
117 $this->assertArrayHasKey(
'default_value',
$attribute);
120 $this->assertEquals(
'Default Red',
$attribute[
'options'][2][
'label']);
132 $this->fail(
"Expected exception");
133 }
catch (\SoapFault $e) {
135 }
catch (\Exception $e) {
136 $this->assertEquals(HTTPExceptionCodes::HTTP_BAD_REQUEST, $e->getCode());
155 'entity_type_id' => 4,
156 'is_used_in_grid' =>
true,
158 'default_frontend_label' =>
'default_label_new',
159 'frontend_labels' => [
161 [
'store_id' => 0,
'label' =>
'front_lbl_store0_new'],
162 [
'store_id' => 1,
'label' =>
'front_lbl_store1_new'],
168 "label" =>
"New Label",
172 "label" =>
"Default Blue Updated" 181 "is_default" =>
true,
185 "label" =>
"Admin Green" 189 "label" =>
"Default Green" 194 'is_required' =>
false,
195 'frontend_input' =>
'select',
201 $this->assertEquals(
true,
$result[
'is_used_in_grid']);
203 $this->assertEquals(
'default_label_new',
$result[
'default_frontend_label']);
204 $this->assertEquals(
'front_lbl_store1_new',
$result[
'frontend_labels'][0][
'label']);
206 $this->assertEquals(
$result[
'options'][3][
'value'],
$result[
'default_value']);
207 $this->assertEquals(
"Default Blue Updated",
$result[
'options'][1][
'label']);
223 'entity_type_id' => 4,
224 'is_used_in_grid' =>
true,
225 'frontend_labels' => [
227 [
'store_id' => 0,
'label' =>
'front_lbl_store0_new'],
228 [
'store_id' => 1,
'label' =>
'front_lbl_store1_new'],
230 'is_required' =>
false,
231 'frontend_input' =>
'select',
237 $this->assertEquals(
true,
$result[
'is_used_in_grid']);
239 $this->assertEquals(
'front_lbl_store0_new',
$result[
'default_frontend_label']);
240 $this->assertEquals(
'front_lbl_store1_new',
$result[
'frontend_labels'][0][
'label']);
256 'entity_type_id' => 4,
257 'is_used_in_grid' =>
true,
258 'frontend_labels' => [
260 [
'store_id' => 1,
'label' =>
'front_lbl_store1_new'],
262 'is_required' =>
false,
263 'frontend_input' =>
'select',
269 $this->assertEquals(
true,
$result[
'is_used_in_grid']);
271 $this->assertEquals(
'default_label',
$result[
'default_frontend_label']);
272 $this->assertEquals(
'front_lbl_store1_new',
$result[
'frontend_labels'][0][
'label']);
288 'entity_type_id' => 4,
289 'is_required' =>
true,
290 'frontend_labels' => [
291 [
'store_id' => 0,
'label' =>
'front_lbl_new'],
296 "label" =>
"New Label",
300 "label" =>
"new label" 305 'frontend_input' =>
'select',
310 $this->assertEquals(4, count(
$output[
'options']));
330 'The attribute with a "%1" attributeCode doesn\'t exist. Verify the attribute and try again.';
340 'operation' => self::SERVICE_NAME .
'deleteById',
346 $this->fail(
"Expected exception");
347 }
catch (\SoapFault $e) {
348 $this->assertContains(
351 "SoapFault does not contain expected message." 353 }
catch (\Exception $e) {
355 $this->assertEquals($expectedMessage, $errorObj[
'message']);
357 $this->assertEquals(HTTPExceptionCodes::HTTP_NOT_FOUND, $e->getCode());
370 'entity_type_id' =>
'4',
371 "default_frontend_label" =>
'default_label',
372 'frontend_labels' => [
373 [
'store_id' => 0,
'label' =>
'front_lbl_store0'],
374 [
'store_id' => 1,
'label' =>
'front_lbl_store1'],
376 'is_required' =>
true,
377 "default_value" =>
"",
378 "frontend_input" =>
"select",
379 "is_visible_on_front" =>
true,
380 "is_searchable" =>
true,
381 "is_visible_in_advanced_search" =>
true,
382 "is_filterable" =>
true,
383 "is_filterable_in_search" =>
true,
389 "is_default" =>
false,
393 "label" =>
"Admin Red" 397 "label" =>
"Default Red" 405 "is_default" =>
true,
409 "label" =>
"Admin Blue" 413 "label" =>
"Default Blue" 423 'resourcePath' => self::RESOURCE_PATH .
'/',
429 'operation' => self::SERVICE_NAME .
'Save',
453 'operation' => self::SERVICE_NAME .
'Get',
476 'operation' => self::SERVICE_NAME .
'deleteById',
490 if (TESTS_WEB_API_ADAPTER == self::ADAPTER_SOAP) {
501 'operation' => self::SERVICE_NAME .
'Save',
_webApiCall( $serviceInfo, $arguments=[], $webApiAdapterCode=null, $storeCode=null, $integration=null)
createAttribute($attributeCode)
updateAttribute($attributeCode, $attributeData)
deleteAttribute($attributeCode)
testUpdateWithNoDefaultLabelAndAdminStorelabel()
testUpdateWithNoDefaultLabelAndNoAdminStoreLabel()
processRestExceptionResult(\Exception $e)
testUpdateWithNewOption()
testDeleteNoSuchEntityException()
testCreateWithExceptionIfAttributeAlreadyExists()
getAttribute($attributeCode)