public static string GetAssetBundleDirectory(CompressType type) { var builder = new StringBuilder() .Append(Application.streamingAssetsPath) .Append("/") .Append(type.ToString()) .Append("/"); return(builder.ToString()); }
public async Task Normal(CompressType compressType) { var random = new Random(); var minionLocator = new TestMinionLocator(); using var host = QuickSetupTestHelper.BuildHost( DatabaseType.SQLite, RelationLocatorStrategy.SharedTable, AppsettingsFilenames.Concat(new[] { $"configs/rabbitmq/appsettings.{compressType.ToString("G").ToLower()}.json" }), builder => { builder.RegisterInstance(minionLocator) .As <IMinionLocator>() .SingleInstance(); }, builder => builder.UseRabbitMQ(rabbitmq => rabbitmq.AsEventCenter()) ); var container = host.Services; var subscriberManager = container.GetRequiredService <IMQSubscriberManager>(); await subscriberManager.StartAsync(); var claptrapFactory = (ClaptrapFactory)container.GetRequiredService <IClaptrapFactory>(); var id1 = new ClaptrapIdentity("1", Codes.Account); await using var scope = claptrapFactory.BuildClaptrapLifetimeScope(id1); var eventCenter = scope.Resolve <IEventCenter>(); var eventData = new AccountBalanceChangeEvent { Diff = random.Next(0, 1000) }; var evt = new DataEvent(id1, Codes.AccountBalanceChangeEvent, eventData) { Version = 1 }; await eventCenter.SendToMinionsAsync(id1, evt); await Task.Delay(TimeSpan.FromSeconds(3)); minionLocator.Queue.Count.Should().Be(2); var dic = minionLocator.Queue.ToDictionary(x => x.Identity); var balanceMinionId = new ClaptrapIdentity(id1.Id, Codes.AccountBalanceMinion); var balanceMinionItem = dic[balanceMinionId]; AssertEvent(balanceMinionId, balanceMinionItem); var balanceHistoryMinionId = new ClaptrapIdentity(id1.Id, Codes.AccountBalanceMinion); var balanceHistoryMinionItem = dic[balanceHistoryMinionId]; AssertEvent(balanceHistoryMinionId, balanceHistoryMinionItem); await subscriberManager.CloseAsync(); await container.GetRequiredService <IMQSenderManager>().CloseAsync(); await host.StopAsync(); void AssertEvent(ClaptrapIdentity minionId, ReceivedItem item) { var(id, e) = item; id.Should().BeEquivalentTo(minionId); e.Version.Should().Be(evt.Version); e.EventTypeCode.Should().Be(evt.EventTypeCode); e.Data.Should().BeOfType <AccountBalanceChangeEvent>(); var data = (AccountBalanceChangeEvent)e.Data; data.Diff.Should().Be(eventData.Diff); } }