public void InterpretDeleteMessage_canInterpretDifferentTimeTypeAndDayDeletion(TimeEntryTypeEnum timeEntryType) { var sut = new DeleteInterpreter().InterpretMessage(ToPayload("delete " + timeEntryType.GetDescription() + " jan-17")); var now = DateTime.UtcNow; sut.Date.Year.Should().Be(now.Year); sut.Date.Month.Should().Be(1); sut.Date.Day.Should().Be(17); sut.TimeEntryType.Should().Be(timeEntryType); }
HandleCommand_deleteHoursTypeDefaultDay_returnsDeletedMessage_andOnlyDeletesHoursForThatTypeToday( TimeEntryTypeEnum entryType, int hours, int numEntriesToDelete) { var user = database.Users.First(); var date = DateTime.UtcNow.Date; var timeEntryService = new TimeEntryService(user.UserId, database); await SetUpHourEntriesAndDays(timeEntryService, date); var numEntries = database.TimeEntries.Count(); var slackMessage = await orchestrator.HandleCommand(new SlashCommandPayload() { text = "delete " + entryType.GetDescription(), user_id = user.SlackUserId, user_name = user.UserName }); slackMessage.Text.Should().Be($"Deleted {hours:F1} {entryType} hours for date: {date:D}"); database.TimeEntries.Count().Should().Be(numEntries - numEntriesToDelete); database.TimeEntries.Where(x => x.UserId == user.UserId).Sum(x => x.Hours).Should().Be(33 - hours); database.TimeEntries.Where(x => x.UserId == user.UserId && x.TimeEntryType == entryType && x.Date == date) .ToList().Count.Should().Be(0); }
public void GetDescription_ReturnsMatchingStringToEnum(TimeEntryTypeEnum type, string name) { type.GetDescription().Should().Be(name); }