public void PassesConfiguredEventSenderToEventHandler() { var gotSender = new EventSink <object>(); myEvent += (sender, args) => gotSender.Enqueue(sender); executor.ScheduleEvent("hello", myEvent); Assert.Equal(MyEventSender, gotSender.ExpectValue()); }
public void EventHandlerIsCalledOnUIThread() { var td = TestData.DataSource(); var config = BasicConfig().DataSource(td).Build(); var captureMainThread = new EventSink <Thread>(); NSRunLoop.Main.BeginInvokeOnMainThread(() => captureMainThread.Enqueue(Thread.CurrentThread)); var mainThread = captureMainThread.ExpectValue(); using (var client = TestUtil.CreateClient(config, BasicUser)) { var receivedOnThread = new EventSink <Thread>(); client.FlagTracker.FlagValueChanged += (sender, args) => receivedOnThread.Enqueue(Thread.CurrentThread); td.Update(td.Flag("flagkey").Variation(true)); var t = receivedOnThread.ExpectValue(); Assert.Equal(mainThread, t); } }
public void EventSenderIsClientInstance() { // We're only checking one kind of events here (FlagValueChanged), but since the SDK uses the // same TaskExecutor instance for all event dispatches and the sender is configured in // that object, the sender should be the same for all events. var flagKey = "flagKey"; var testData = TestData.DataSource(); testData.Update(testData.Flag(flagKey).Variation(true)); var config = BasicConfig().DataSource(testData).Build(); using (var client = TestUtil.CreateClient(config, BasicUser)) { var receivedSender = new EventSink <object>(); client.FlagTracker.FlagValueChanged += (s, e) => receivedSender.Enqueue(s); testData.Update(testData.Flag(flagKey).Variation(false)); var sender = receivedSender.ExpectValue(); Assert.Same(client, sender); } }
public void AddStreamInit(DateTime timestamp, TimeSpan duration, bool failed) => StreamInits.Enqueue(new StreamInit { Timestamp = timestamp, Duration = duration, Failed = failed });
public void Init(User user, FullDataSet data) => Actions.Enqueue(new ReceivedInit { Data = data, User = user });
protected override Task <HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { Requests.Enqueue(request); return(Task.FromResult(new HttpResponseMessage((HttpStatusCode)_statusCode))); }