public GraphQLTestBase(ITestOutputHelper output) { Log.Logger = new LoggerConfiguration().MinimumLevel.Debug().WriteTo.Console().CreateLogger(); _output = output; var store = new DefaultStore(null); var genesisBlock = BlockChain <PolymorphicAction <ActionBase> > .MakeGenesisBlock(); var blockPolicy = new BlockPolicy <PolymorphicAction <ActionBase> >(blockAction: new RewardGold()); var blockChain = new BlockChain <PolymorphicAction <ActionBase> >( blockPolicy, store, store, genesisBlock, renderers: new IRenderer <PolymorphicAction <ActionBase> >[] { new BlockRenderer(), new ActionRenderer() } ); var tempKeyStorePath = Path.Join(Path.GetTempPath(), Path.GetRandomFileName()); var keyStore = new Web3KeyStore(tempKeyStorePath); StandaloneContextFx = new StandaloneContext { BlockChain = blockChain, KeyStore = keyStore, }; Schema = new StandaloneSchema(new TestServiceProvider(StandaloneContextFx)); Schema.Subscription.As <StandaloneSubscription>().RegisterTipChangedSubscription(); DocumentExecutor = new DocumentExecuter(); }
public GraphQLTestBase(ITestOutputHelper output) { Log.Logger = new LoggerConfiguration().MinimumLevel.Debug().WriteTo.Console().CreateLogger(); _output = output; var goldCurrency = new Currency("NCG", 2, minter: null); var fixturePath = Path.Combine("..", "..", "..", "..", "Lib9c", ".Lib9c.Tests", "Data", "TableCSV"); var sheets = TableSheetsImporter.ImportSheets(fixturePath); var blockAction = new RewardGold(); var genesisBlock = BlockChain <NCAction> .MakeGenesisBlock( new NCAction[] { new InitializeStates( rankingState: new RankingState(), shopState: new ShopState(), gameConfigState: new GameConfigState(sheets[nameof(GameConfigSheet)]), redeemCodeState: new RedeemCodeState(Bencodex.Types.Dictionary.Empty .Add("address", RedeemCodeState.Address.Serialize()) .Add("map", Bencodex.Types.Dictionary.Empty) ), adminAddressState: new AdminState(AdminAddress, 10000), activatedAccountsState: new ActivatedAccountsState(), goldCurrencyState: new GoldCurrencyState(goldCurrency), goldDistributions: new GoldDistribution[] { }, tableSheets: sheets, pendingActivationStates: new PendingActivationState[] { } ), }, blockAction : blockAction); var ncService = ServiceBuilder.CreateNineChroniclesNodeService(genesisBlock, new PrivateKey()); var tempKeyStorePath = Path.Join(Path.GetTempPath(), Path.GetRandomFileName()); var keyStore = new Web3KeyStore(tempKeyStorePath); StandaloneContextFx = new StandaloneContext { KeyStore = keyStore, }; ncService.ConfigureContext(StandaloneContextFx); var configurationBuilder = new ConfigurationBuilder(); var configuration = configurationBuilder.Build(); var services = new ServiceCollection(); services.AddSingleton(StandaloneContextFx); services.AddSingleton <IConfiguration>(configuration); services.AddGraphTypes(); services.AddLibplanetExplorer <NCAction>(); services.AddSingleton <StateQuery>(); services.AddSingleton(ncService); ServiceProvider serviceProvider = services.BuildServiceProvider(); Schema = new StandaloneSchema(serviceProvider); DocumentExecutor = new DocumentExecuter(); }