import 'package:flutter_test/flutter_test.dart';
import 'package:marianum_mobile/api/marianumcloud/files_sharing/ocs_path.dart';
import 'package:marianum_mobile/api/marianumcloud/webdav/queries/list_files/cacheable_file.dart';

void main() {
  group('ocsPathFor', () {
    test('files root maps to a single slash', () {
      expect(ocsPathFor(''), '/');
      expect(ocsPathFor('/'), '/');
    });

    test('a file path gets a leading slash', () {
      expect(ocsPathFor('Documents/x.pdf'), '/Documents/x.pdf');
    });

    test('a folder loses its trailing slash', () {
      expect(ocsPathFor('Documents/'), '/Documents');
      expect(ocsPathFor('Shared/a/'), '/Shared/a');
    });

    test('collapses leading/trailing slashes', () {
      expect(ocsPathFor('/Shared/a/'), '/Shared/a');
    });
  });

  group('ocsPathOf', () {
    test('derives from a CacheableFile path', () {
      final folder = CacheableFile(
        path: 'Documents/',
        isDirectory: true,
        name: 'Documents',
      );
      final file = CacheableFile(
        path: 'Documents/report.pdf',
        isDirectory: false,
        name: 'report.pdf',
      );
      expect(ocsPathOf(folder), '/Documents');
      expect(ocsPathOf(file), '/Documents/report.pdf');
    });
  });
}
