public void TrackOutcome_ValidOutcome_ShouldRegisterOutcome([Frozen] ID outcomeDefinitionId, [Frozen] IAccountsSettingsService accountsSettingsService, [NoAutoProperties] AccountTrackerService trackerService, ITracker tracker, Contact contact, CurrentInteraction interaction) { tracker.IsActive.Returns(true); tracker.Contact.Returns(contact); tracker.Interaction.Returns(interaction); tracker.Session.Returns(Substitute.For <Session>()); tracker.Session.CustomData.Returns(new Dictionary <string, object>()); using (new TrackerSwitcher(tracker)) { trackerService.TrackOutcome(outcomeDefinitionId); tracker.GetContactOutcomes().Should().Contain(o => o.DefinitionId == outcomeDefinitionId); } }
public void TrackOutcome_InactiveTracker_ShouldNotTrack([Frozen] ID outcomeDefinitionId, [Frozen] IAccountsSettingsService accountsSettingsService, [NoAutoProperties] AccountTrackerService trackerService, ITracker tracker) { // Arrange tracker.IsActive.Returns(false); tracker.Session.Returns(Substitute.For <Session>()); tracker.Session.CustomData.Returns(new Dictionary <string, object>()); using (new TrackerSwitcher(tracker)) { // Act trackerService.TrackOutcome(outcomeDefinitionId); // Assert tracker.GetContactOutcomes().Should().BeEmpty(); } }