public IObservable <IThreadSafeTimeEntry> Execute() => dataSource.TimeEntries .GetAll(te => !te.IsDeleted) .Select(timeEntries => timeEntries.MaxBy(te => te.Start)) .Select(newTimeEntry) .SelectMany(dataSource.TimeEntries.Create) .Do(_ => syncManager.InitiatePushSync()) .Track(StartTimeEntryEvent.With(TimeEntryStartOrigin.ContinueMostRecent), analyticsService);
public void ConvertNumberOfTagsToAString(int numberOfTags) { StartTimeEntryEvent startTimeEntryEvent = createTimeEntryEvent(numberOfTags: numberOfTags); var eventToDictionaryResult = startTimeEntryEvent.ToDictionary(); eventToDictionaryResult[nameof(StartTimeEntryEvent.NumberOfTags)].Should().Be(numberOfTags.ToString()); }
public IObservable <IThreadSafeTimeEntry> Execute() => dataSource.User.Current .FirstAsync() .Select(userFromPrototype) .SelectMany(dataSource.TimeEntries.Create) .Do(notifyOfNewTimeEntryIfPossible) .Do(dataSource.SyncManager.InitiatePushSync) .Track(StartTimeEntryEvent.With(origin), analyticsService);
public void ConvertsTheOriginToAString(TimeEntryStartOrigin origin) { StartTimeEntryEvent startTimeEntryEvent = createTimeEntryEvent(origin); var eventToDictionaryResult = startTimeEntryEvent.ToDictionary(); eventToDictionaryResult[nameof(StartTimeEntryEvent.Origin)].Should().Be(origin.ToString()); }
public void SetsTheNumberTagsPropertyProperly(long[] tagIds) { TimeEntry.TagIds.Returns(tagIds.AsEnumerable()); StartTimeEntryEvent startTimeEntryEvent = StartTimeEntryEvent.With(default(TimeEntryStartOrigin), TimeEntry); startTimeEntryEvent.NumberOfTags.Should().Be(tagIds.Length); }
public void SetsTheIsRunningPropertyProperly(long?duration, bool isRunning) { TimeEntry.Duration.Returns(duration); StartTimeEntryEvent startTimeEntryEvent = StartTimeEntryEvent.With(default(TimeEntryStartOrigin), TimeEntry); startTimeEntryEvent.IsRunning.Should().Be(isRunning); }
public void SetsTheIsBillablePropertyProperly(bool isBillable) { TimeEntry.Billable.Returns(isBillable); StartTimeEntryEvent startTimeEntryEvent = StartTimeEntryEvent.With(default(TimeEntryStartOrigin), TimeEntry); startTimeEntryEvent.IsBillable.Should().Be(isBillable); }
public void SetsTheHasTaskPropertyProperly(long?projectId, bool hasTask) { TimeEntry.TaskId.Returns(projectId); StartTimeEntryEvent startTimeEntryEvent = StartTimeEntryEvent.With(default(TimeEntryStartOrigin), TimeEntry); startTimeEntryEvent.HasTask.Should().Be(hasTask); }
public void SetsTheHasEmptyDescriptionPropertyProperly(string description, bool isEmptyDescription) { TimeEntry.Description.Returns(description); StartTimeEntryEvent startTimeEntryEvent = StartTimeEntryEvent.With(default(TimeEntryStartOrigin), TimeEntry); startTimeEntryEvent.HasEmptyDescription.Should().Be(isEmptyDescription); }
public void ConvertsAllBooleansToStrings(bool value) { StartTimeEntryEvent startTimeEntryEvent = createTimeEntryEvent(valueForBooleans: value); var eventToDictionaryResult = startTimeEntryEvent.ToDictionary(); eventToDictionaryResult[nameof(StartTimeEntryEvent.HasEmptyDescription)].Should().Be(value.ToString()); eventToDictionaryResult[nameof(StartTimeEntryEvent.HasProject)].Should().Be(value.ToString()); eventToDictionaryResult[nameof(StartTimeEntryEvent.HasTask)].Should().Be(value.ToString()); eventToDictionaryResult[nameof(StartTimeEntryEvent.IsBillable)].Should().Be(value.ToString()); eventToDictionaryResult[nameof(StartTimeEntryEvent.IsRunning)].Should().Be(value.ToString()); }
public void MapsTheSevenEventParameterKeys() { StartTimeEntryEvent startTimeEntryEvent = createTimeEntryEvent(); var eventToDictionaryResult = startTimeEntryEvent.ToDictionary(); eventToDictionaryResult.Keys.Count.Should().Be(7); eventToDictionaryResult.Keys.Should() .Contain(new[] { nameof(StartTimeEntryEvent.Origin), nameof(StartTimeEntryEvent.HasEmptyDescription), nameof(StartTimeEntryEvent.HasProject), nameof(StartTimeEntryEvent.HasTask), nameof(StartTimeEntryEvent.IsBillable), nameof(StartTimeEntryEvent.IsRunning), nameof(StartTimeEntryEvent.NumberOfTags) }); }
public void SetsTheOriginPropertyProperly(TimeEntryStartOrigin origin) { StartTimeEntryEvent startTimeEntryEvent = StartTimeEntryEvent.With(origin, TimeEntry); startTimeEntryEvent.Origin.Should().Be(origin); }