getContainer()->getByClass(Metadata::class); $metadata->set('entityDefs', Account::ENTITY_TYPE, [ 'fields' => [ 'name' => [ 'readOnlyAfterCreate' => true, ], 'type' => [ 'readOnly' => true, ], ] ]); $metadata->save(); $this->reCreateApplication(); $service = $this->getContainer() ->getByClass(ServiceContainer::class) ->getByClass(Account::class); $account = $service->create((object) [ 'name' => 'Test', 'type' => 'Customer', ], CreateParams::create()); $this->assertEquals('Test', $account->get('name')); $this->assertNull($account->get('type')); $account = $service->update($account->getId(), (object) [ 'name' => 'Test 1', 'billingAddressCity' => 'Hello', ], UpdateParams::create()); $this->assertEquals('Test', $account->get('name')); $this->assertEquals('Hello', $account->get('billingAddressCity')); } }