'Full Administrator', 'guard_name' => 'admin']); $admin = User::factory()->create(); $admin->assignRole('Full Administrator'); $network = ModuleNetwork::create(['name' => 'VM Network 56']); $customer = Customer::factory()->create(['fullname' => 'Công ty A']); foreach (['10.0.0.5', '10.0.0.6', '10.0.0.7'] as $ip) { IpPool::create(['ip_address' => $ip, 'module_network_id' => $network->id, 'cidr' => 24, 'status' => 'assigned']); ModuleIpAddress::create(['ip' => $ip, 'module_network_id' => $network->id, 'status' => 1, 'vm_name' => "{$ip}_vm"]); } $vmware = ModuleVmware::create(['name' => '10.0.0.5_customer-vm', 'ip' => '10.0.0.5', 'customer_id' => $customer->id]); $service = Service::create(['customer_id' => $customer->id, 'status' => 'active', 'server_name' => 'vps-a', 'vm_id' => $vmware->id]); Schema::disableForeignKeyConstraints(); $vcenterVm = VirtualMachines::create(['uuid' => (string) Str::uuid(), 'vm_id' => 'vm-1', 'name' => '10.0.0.6_test-vm', 'datacenter_id' => 1, 'host_id' => 1]); $items = collect($this->actingAs($admin, 'admin') ->getJson('/api/v1/administrator/ip-pool?all=1') ->assertOk() ->json('data.items')) ->keyBy('ip_address'); $this->assertSame($service->id, $items['10.0.0.5']['usage']['service_id']); $this->assertSame('vps-a', $items['10.0.0.5']['usage']['service_name']); $this->assertSame($customer->uuid, $items['10.0.0.5']['usage']['customer_uuid']); $this->assertSame($vcenterVm->id, $items['10.0.0.6']['usage']['vcenter_vm_id']); $this->assertNull($items['10.0.0.6']['usage']['service_id']); $this->assertSame('10.0.0.7_vm', $items['10.0.0.7']['usage']['vm_name']); $this->assertNull($items['10.0.0.7']['usage']['vcenter_vm_id']); } }