diff --git a/GigRaptorLib.Tests/Utilities/Google/GoogleSheetManagerTests.cs b/GigRaptorLib.Tests/Utilities/Google/GoogleSheetManagerTests.cs index f07bf10..20f3bf0 100644 --- a/GigRaptorLib.Tests/Utilities/Google/GoogleSheetManagerTests.cs +++ b/GigRaptorLib.Tests/Utilities/Google/GoogleSheetManagerTests.cs @@ -97,22 +97,7 @@ public async Task GivenAddSheetData_WithValidSheetId_ThenReturnEmpty() [Fact] public async Task GivenAddSheetData_WithData_ThenReturnData() { - // Create shift/trips - var date = DateTime.Now.ToString("yyyy-MM-dd"); - var random = new Random(); - var number = random.Next(); - var service = $"Test {number}"; - - var sheetEntity = new SheetEntity(); - sheetEntity.Shifts.Add(new ShiftEntity { Date = date, Number = 1, Service = service }); - - // Loop randomly - for (int i = 0; i < random.Next(1,5); i++) - { - sheetEntity.Trips.Add(new TripEntity { Date = date, Number = 1, Service = service, Type = "Pickup", Pay = Math.Round(random.Next(1, 10) + new decimal(random.NextDouble()),2), Tip = random.Next(1, 5), Distance = Math.Round(random.Next(1, 10) + new decimal(random.NextDouble()),2), Name = "Test Name", StartAddress = "Start Address", EndAddress = "End Address" }); - } - - var result = await _googleSheetManager.AddSheetData([SheetEnum.TRIPS, SheetEnum.SHIFTS], sheetEntity); + var result = await _googleSheetManager.AddSheetData([SheetEnum.TRIPS, SheetEnum.SHIFTS], GenerateShift()); result.Should().NotBeNull(); //result.Messages.Count.Should().Be(1); //result.Messages[0].Type.Should().Be(MessageEnum.Error.UpperName()); @@ -135,4 +120,39 @@ public async Task GivenCreateSheet_WithValidSheetId_ThenReturnData() result.Messages.Count.Should().Be(1); result.Messages[0].Level.Should().Be(MessageLevelEnum.Error.UpperName()); } + + private static SheetEntity GenerateShift() + { + // Create shift/trips + var date = DateTime.Now.ToString("yyyy-MM-dd"); + var random = new Random(); + var number = random.Next(); + var service = $"Test {number}"; + + var sheetEntity = new SheetEntity(); + sheetEntity.Shifts.Add(new ShiftEntity { Date = date, Number = 1, Service = service }); + + // Add random amount of trips + for (int i = 0; i < random.Next(1, 5); i++) + { + var tripEntity = GenerateTrip(); + tripEntity.Date = date; + tripEntity.Number = 1; + tripEntity.Service = service; + sheetEntity.Trips.Add(tripEntity); + } + + return sheetEntity; + } + + private static TripEntity GenerateTrip() { + var random = new Random(); + var pay = Math.Round(random.Next(1, 10) + new decimal(random.NextDouble()), 2); + var tip = random.Next(1, 5); + var name = $"Test Name {random.Next(1, 25)}"; + var startAddress = $"Start Address {random.Next(1, 25)}"; + var endAddress = $"End Address {random.Next(1, 25)}"; + + return new TripEntity { Type = "Pickup", Pay = pay, Tip = tip, Name = name, StartAddress = startAddress, EndAddress = endAddress }; + } } diff --git a/GigRaptorLib/Mappers/TripMapper.cs b/GigRaptorLib/Mappers/TripMapper.cs index 325c716..c4f5c44 100644 --- a/GigRaptorLib/Mappers/TripMapper.cs +++ b/GigRaptorLib/Mappers/TripMapper.cs @@ -151,7 +151,7 @@ public static List MapFromRangeData(IList> values) objectList.Add(trip.Note); break; default: - objectList.Add(null); + objectList.Add(new object()); break; } } diff --git a/GigRaptorLib/Utilities/Google/GoogleSheetManager.cs b/GigRaptorLib/Utilities/Google/GoogleSheetManager.cs index 2d998ec..c5d6305 100644 --- a/GigRaptorLib/Utilities/Google/GoogleSheetManager.cs +++ b/GigRaptorLib/Utilities/Google/GoogleSheetManager.cs @@ -46,16 +46,16 @@ public async Task AddSheetData(List sheets, SheetEntity switch (sheet) { case SheetEnum.SHIFTS: values = ShiftMapper.MapToRangeData(sheetEntity.Shifts, headers); - sheetEntity.Messages.Add(MessageHelper.CreateInfoMessage($"Adding data to {sheet.UpperName()}")); + sheetEntity.Messages.Add(MessageHelper.CreateInfoMessage($"Adding data to {sheet.UpperName()}", MessageTypeEnum.AddData.DisplayName())); break; case SheetEnum.TRIPS: values = TripMapper.MapToRangeData(sheetEntity.Trips, headers); - sheetEntity.Messages.Add(MessageHelper.CreateInfoMessage($"Adding data to {sheet.UpperName()}")); + sheetEntity.Messages.Add(MessageHelper.CreateInfoMessage($"Adding data to {sheet.UpperName()}", MessageTypeEnum.AddData.DisplayName())); break; default: // Unsupported sheet. - sheetEntity.Messages.Add(MessageHelper.CreateErrorMessage($"Adding data to {sheet.UpperName()} not supported")); + sheetEntity.Messages.Add(MessageHelper.CreateErrorMessage($"Adding data to {sheet.UpperName()} not supported", MessageTypeEnum.AddData.DisplayName())); break; } @@ -65,13 +65,13 @@ public async Task AddSheetData(List sheets, SheetEntity var result = await _googleSheetService.AppendData(valueRange, $"{sheet.DisplayName()}!{GoogleConfig.Range}"); if (result == null) - sheetEntity.Messages.Add(MessageHelper.CreateErrorMessage($"Unable to add data to {sheet.UpperName()}")); + sheetEntity.Messages.Add(MessageHelper.CreateErrorMessage($"Unable to add data to {sheet.UpperName()}", MessageTypeEnum.AddData.DisplayName())); else - sheetEntity.Messages.Add(MessageHelper.CreateInfoMessage($"Added data to {sheet.UpperName()}")); + sheetEntity.Messages.Add(MessageHelper.CreateInfoMessage($"Added data to {sheet.UpperName()}", MessageTypeEnum.AddData.DisplayName())); } else { - sheetEntity.Messages.Add(MessageHelper.CreateWarningMessage($"No data to add to {sheet.UpperName()}")); + sheetEntity.Messages.Add(MessageHelper.CreateWarningMessage($"No data to add to {sheet.UpperName()}", MessageTypeEnum.AddData.DisplayName())); } } @@ -96,7 +96,7 @@ public async Task CreateSheets(List sheets) { foreach (var sheet in sheets) { - sheetEntity.Messages.Add(MessageHelper.CreateErrorMessage($"{sheet.UpperName()} not created")); + sheetEntity.Messages.Add(MessageHelper.CreateErrorMessage($"{sheet.UpperName()} not created", MessageTypeEnum.CreateSheet.DisplayName())); } return sheetEntity; @@ -106,7 +106,7 @@ public async Task CreateSheets(List sheets) foreach (var sheetTitle in sheetTitles) { - sheetEntity.Messages.Add(MessageHelper.CreateInfoMessage($"{sheetTitle.GetValueFromName()} created")); + sheetEntity.Messages.Add(MessageHelper.CreateInfoMessage($"{sheetTitle.GetValueFromName()} created", MessageTypeEnum.CreateSheet.DisplayName())); } return sheetEntity; @@ -118,7 +118,7 @@ public async Task GetSheet(string sheet) if (!sheetExists) { - return new SheetEntity { Messages = [MessageHelper.CreateErrorMessage($"Sheet {sheet.ToUpperInvariant()} does not exist")] }; + return new SheetEntity { Messages = [MessageHelper.CreateErrorMessage($"Sheet {sheet.ToUpperInvariant()} does not exist", MessageTypeEnum.GetSheets.DisplayName())] }; } return await GetSheets([sheetEnum]); @@ -144,11 +144,11 @@ public async Task GetSheets(List sheets) if (response == null) { - messages.Add(MessageHelper.CreateErrorMessage($"Unable to retrieve sheet(s): {stringSheetList}")); + messages.Add(MessageHelper.CreateErrorMessage($"Unable to retrieve sheet(s): {stringSheetList}", MessageTypeEnum.GetSheets.DisplayName())); } else { - messages.Add(MessageHelper.CreateInfoMessage($"Retrieved sheet(s): {stringSheetList}")); + messages.Add(MessageHelper.CreateInfoMessage($"Retrieved sheet(s): {stringSheetList}", MessageTypeEnum.GetSheets.DisplayName())); data = SheetHelper.MapData(response); }