using LibHac.Bcat; using LibHac.Common.Keys; using LibHac.Fs.Fsa; using LibHac.FsSrv; using LibHac.FsSystem; using LibHac.Tools.Fs; namespace LibHac.Tests; public static class HorizonFactory { public static Horizon CreateBasicHorizon() { IFileSystem rootFs = new InMemoryFileSystem(); var keySet = new KeySet(); var horizon = new Horizon(new HorizonConfiguration()); HorizonClient fsServerClient = horizon.CreatePrivilegedHorizonClient(); var fsServer = new FileSystemServer(fsServerClient); var random = new Random(12345); RandomDataGenerator randomGenerator = buffer => random.NextBytes(buffer); var defaultObjects = DefaultFsServerObjects.GetDefaultEmulatedCreators(rootFs, keySet, fsServer, randomGenerator); var config = new FileSystemServerConfig(); config.FsCreators = defaultObjects.FsCreators; config.StorageDeviceManagerFactory = defaultObjects.StorageDeviceManagerFactory; config.ExternalKeySet = new ExternalKeySet(); config.RandomGenerator = randomGenerator; FileSystemServerInitializer.InitializeWithConfig(fsServerClient, fsServer, config); HorizonClient bcatServerClient = horizon.CreateHorizonClient(); _ = new BcatServer(bcatServerClient); return horizon; } }