public void CanRegisterMultipleSubscribers() { var p1 = A.Fake<IAnalyticsProvider>(); var p2 = A.Fake<IAnalyticsProvider>(); var analytics = new Analytics(); analytics.Subscribe(p1); analytics.Subscribe(p2); analytics.TrackEvent(A.Dummy<string>()); A.CallTo(() => p1.TrackEvent(A<string>._)).MustHaveHappened(Repeated.Exactly.Once); A.CallTo(() => p2.TrackEvent(A<string>._)).MustHaveHappened(Repeated.Exactly.Once); }
public void CanTrackEventTwiceOnProvider() { var provider = A.Fake<IAnalyticsProvider>(); var analytics = new Analytics(); analytics.Subscribe(provider); analytics.TrackEvent(A.Dummy<string>()); analytics.TrackEvent(A.Dummy<string>()); A.CallTo(() => provider.TrackEvent(A<string>._)).MustHaveHappened(Repeated.Exactly.Twice); }
public void CanTrackException() { var provider = A.Fake<IAnalyticsProvider>(); var analytics = new Analytics(); analytics.Subscribe(provider); analytics.TrackException(A.Dummy<Exception>()); A.CallTo(() => provider.TrackException(A<Exception>._)).MustHaveHappened(Repeated.Exactly.Once); A.CallTo(() => provider.TrackEvent(A<string>._)).MustNotHaveHappened(); A.CallTo(() => provider.TrackScreen(A<string>._)).MustNotHaveHappened(); }
public void CanTrackEventNTimesOnProvider() { var provider = A.Fake<IAnalyticsProvider>(); var analytics = new Analytics(); analytics.Subscribe(provider); var count = new Random().Next(1000); for (int i = 0; i < count; i++) { analytics.TrackEvent(A.Dummy<string>()); } Console.WriteLine("Executed '{0}' times", count); A.CallTo(() => provider.TrackEvent(A<string>._)).MustHaveHappened(Repeated.Exactly.Times(count)); }