create(); $user->assignRole('super-admin'); $this->actingAs($user); $amministratore = Amministratore::create([ 'user_id' => $user->id, 'nome' => 'Admin', 'cognome' => 'Test', 'denominazione' => 'Amministrazione Test', 'codice_fiscale' => '12345678901', ]); $stabile = Stabile::create([ 'amministratore_id' => $amministratore->id, 'codice_stabile' => '9999', 'denominazione' => 'Condominio Test XML', 'codice_fiscale' => '12345678901', 'indirizzo' => 'Via Test 1', 'citta' => 'Roma', 'cap' => '00100', 'provincia' => 'RM', 'codice_destinatario_sdi' => '0000000', ]); // Simula resolveActiveStabile tramite mock o set nel contesto sessione session(['netgescon.stabile_attivo_id' => $stabile->id]); // Crea elementi di test (faldone -> cartellina -> documento) $faldone = DocumentoArchivioFisicoItem::create([ 'stabile_id' => $stabile->id, 'codice_univoco' => 'AF-' . $stabile->id . '-0001', 'tipo_item' => 'faldone_anelli', 'titolo' => 'Faldone Generale 2026', 'data_archiviazione' => now()->toDateString(), 'stato' => 'disponibile', ]); $cartellina = DocumentoArchivioFisicoItem::create([ 'stabile_id' => $stabile->id, 'parent_id' => $faldone->id, 'codice_univoco' => 'AF-' . $stabile->id . '-0002', 'tipo_item' => 'cartellina', 'titolo' => 'Cartellina Riscaldamento', 'data_archiviazione' => now()->toDateString(), 'stato' => 'disponibile', ]); $page = new DocumentiArchivio(); $xml = $page->exportPhysicalArchiveToXml(); expect($xml)->toContain('netgescon_physical_archive') ->toContain('Faldone Generale 2026') ->toContain('Cartellina Riscaldamento'); // Cancella gli elementi per testare il re-import DocumentoArchivioFisicoItem::query()->delete(); expect(DocumentoArchivioFisicoItem::count())->toBe(0); // Re-importa $importedCount = $page->importPhysicalArchiveFromXml($xml); expect($importedCount)->toBe(2); expect(DocumentoArchivioFisicoItem::count())->toBe(2); $importedFaldone = DocumentoArchivioFisicoItem::where('tipo_item', 'faldone_anelli')->first(); $importedCartellina = DocumentoArchivioFisicoItem::where('tipo_item', 'cartellina')->first(); expect($importedFaldone->titolo)->toBe('Faldone Generale 2026'); expect($importedCartellina->titolo)->toBe('Cartellina Riscaldamento'); expect($importedCartellina->parent_id)->toBe($importedFaldone->id); });