Fatti
Il caso riguarda un portiere e aiuto cuoco di nome B., che lavorava presso l'Hotel A. di Ginevra dal agosto 1959. Fino al 1974, l'hotel apparteneva e veniva gestito personalmente dalla signora P. Successivamente, l'edificio fu venduto a una società immobiliare, mentre l'hotel stesso passò a un'altra società (X. SA) che ne assunse la gestione. B. mantenne il suo posto di lavoro come portiere. Nel settembre 1982, X. SA cessò l'attività alberghiera. Le azioni della società immobiliare e i beni dell'Hotel A. furono venduti al Comune di Ginevra, che mise l'hotel a disposizione dell'Associazione per il Nuovo Hotel... (l'Associazione). Quest'ultima subentrò nel numero di telefono e in alcuni clienti del vecchio hotel, ma assunse solo due o tre dei precedenti dipendenti, tra cui B.
X. SA licenziò B. con effetto al 30 settembre 1982, motivando che l'Hotel A. sarebbe stato chiuso. Su raccomandazione di X. SA, tuttavia, l'Associazione riassunse B. a partire dal 1° ottobre 1982 con lo stesso salario. Tuttavia, il 28 gennaio 1983 l'Associazione rescisse nuovamente il contratto di lavoro di B. con effetto al 28 febbraio 1983, in quanto insoddisfatta della sua prestazione. Essa si rifiutò di pagargli un'indennità di licenziamento, in quanto aveva lavorato per loro solo per un breve periodo.
Legge
Il Tribunale federale ha deciso che B. ha diritto a un'indennità di licenziamento ai sensi dell'articolo 57 del Contratto collettivo di lavoro per il settore alberghiero (L-GAV). Tale disposizione prevede tale indennità qualora un lavoratore di almeno 50 anni di età cessi il rapporto di lavoro dopo 15 anni o più presso lo stesso datore di lavoro o nello stesso stabilimento. È irrilevante se il contratto di lavoro sia stato formalmente stipulato con lo stesso o con diversi…