public void Validate_InvalidGuids_ThrowsError() { // given var invalidGuidString = "816c3a23-7568-40a1-b12-c65795fcbd"; var request = new CalendarInformationRequest { Client = new CalendarInformationRequest.Types.Client { ClientId = invalidGuidString, ClientSecret = "mySecret", TenantId = ValidGuidString, }, Calendar = new CalendarInformationRequest.Types.Calendar { CalendarId = "*****@*****.**", BeginTime = CreateUnixTimeOf(DateTime.Now), EndTime = CreateUnixTimeOf(DateTime.Now.AddDays(10)) } }; // when var ex = Assert.Throws <RpcException>(() => new CalendarInformationRequestValidator(_logger).Validate(request)); // then Assert.Equal(StatusCode.InvalidArgument, ex.StatusCode); Assert.Contains("clientid is not a valid GUID", ex.Message); }
private void ValidateEmptyString(CalendarInformationRequest request) { if (string.IsNullOrEmpty(request.Client?.ClientId)) { _errors.Add(new Metadata.Entry("ClientId", EmptyStringMessage)); } if (string.IsNullOrEmpty(request.Client?.TenantId)) { _errors.Add(new Metadata.Entry("TenantId", EmptyStringMessage)); } if (string.IsNullOrEmpty(request.Client?.ClientSecret)) { _errors.Add(new Metadata.Entry("ClientSecret", EmptyStringMessage)); } if (string.IsNullOrEmpty(request.Calendar?.CalendarId)) { _errors.Add(new Metadata.Entry("CalendarId", EmptyStringMessage)); } if (_errors.Any()) { _logger.LogInformation($"Validation Errors: No empty Strings in Request {request.ToString()}"); throw new RpcException(new Status(StatusCode.InvalidArgument, $"{GetErrorKeys()} {EmptyStringMessage}"), _errors); } }
public void Validate_EndEqualToBeginTimestamp_NoError() { // given var timestamp = CreateUnixTimeOf(DateTime.Now); var request = new CalendarInformationRequest { Client = new CalendarInformationRequest.Types.Client { ClientId = ValidGuidString, ClientSecret = "mySecret", TenantId = ValidGuidString, }, Calendar = new CalendarInformationRequest.Types.Calendar { CalendarId = "*****@*****.**", BeginTime = timestamp, EndTime = timestamp } }; // when var actualValid = new CalendarInformationRequestValidator(_logger).Validate(request); // then Assert.True(actualValid); }
public void Validate_EmptyParams_ThrowsError() { // given var request = new CalendarInformationRequest { Client = new CalendarInformationRequest.Types.Client { ClientId = string.Empty, TenantId = string.Empty, }, Calendar = new CalendarInformationRequest.Types.Calendar { CalendarId = string.Empty, BeginTime = CreateUnixTimeOf(DateTime.Now), EndTime = CreateUnixTimeOf(DateTime.Now.AddDays(10)) } }; // when var ex = Assert.Throws <RpcException>(() => new CalendarInformationRequestValidator(_logger).Validate(request)); // then Assert.Equal(StatusCode.InvalidArgument, ex.StatusCode); Assert.Contains("clientid, tenantid, clientsecret, calendarid must not be empty", ex.Message); }
public void Validate_EndBeforeBeginTimestamps_ThrowsError() { // given var request = new CalendarInformationRequest { Client = new CalendarInformationRequest.Types.Client { ClientId = ValidGuidString, ClientSecret = "mySecret", TenantId = ValidGuidString, }, Calendar = new CalendarInformationRequest.Types.Calendar { CalendarId = "*****@*****.**", BeginTime = CreateUnixTimeOf(DateTime.Now), EndTime = CreateUnixTimeOf(DateTime.Now.AddSeconds(-5)) } }; // when var ex = Assert.Throws <RpcException>(() => new CalendarInformationRequestValidator(_logger).Validate(request)); // then Assert.Equal(StatusCode.InvalidArgument, ex.StatusCode); Assert.Contains("timestamps not valid start_time and end_time", ex.Message); }
public void Validate_NoErrorsFound() { // given var request = new CalendarInformationRequest { Client = new CalendarInformationRequest.Types.Client { ClientId = ValidGuidString, ClientSecret = "mySecret", TenantId = ValidGuidString, }, Calendar = new CalendarInformationRequest.Types.Calendar { CalendarId = "*****@*****.**", BeginTime = CreateUnixTimeOf(DateTime.Now), EndTime = CreateUnixTimeOf(DateTime.Now.AddDays(10)) } }; // when var actualRequestIsValid = new CalendarInformationRequestValidator(_logger).Validate(request); // then Assert.True(actualRequestIsValid); }
public bool Validate(CalendarInformationRequest request) { ValidateEmptyString(request); ValidateValidGuid(request); ValidateValidTime(request); return(true); }
private void ValidateValidGuid(CalendarInformationRequest request) { if (!IsValidGuid(request.Client.ClientId)) { _errors.Add(new Metadata.Entry("ClientId", NoValidGuidErrorErrorMessage)); } if (!IsValidGuid(request.Client.TenantId)) { _errors.Add(new Metadata.Entry("TenantId", NoValidGuidErrorErrorMessage)); } if (_errors.Any()) { _logger.LogInformation($"Validation Errors: Not valid Guids in Request {request}"); throw new RpcException(new Status(StatusCode.InvalidArgument, $"{GetErrorKeys()} {NoValidGuidErrorErrorMessage}"), _errors); } }
private void ValidateValidTime(CalendarInformationRequest request) { if (request.Calendar.EndTime < request.Calendar.BeginTime) { _errors.Add(new Metadata.Entry("Timestamps", NotValidTimeErrorMessage)); } if (request.Calendar.EndTime == 0 || request.Calendar.BeginTime == 0) { _errors.Add(new Metadata.Entry("Timestamps", NotValidTimeErrorMessage)); } if (_errors.Any()) { _logger.LogInformation($"Validation Errors: Not valid Timestamps in Request {request}"); throw new RpcException(new Status(StatusCode.InvalidArgument, $"{GetErrorKeys()} {NotValidTimeErrorMessage}"), _errors); } }
public void Validate_NoCalendarSent_ThrowsError() { // given var request = new CalendarInformationRequest { Client = new CalendarInformationRequest.Types.Client { ClientId = ValidGuidString, ClientSecret = "mySecret", TenantId = ValidGuidString, } }; // when var ex = Assert.Throws <RpcException>(() => new CalendarInformationRequestValidator(_logger).Validate(request)); // then Assert.Equal(StatusCode.InvalidArgument, ex.StatusCode); Assert.Contains("calendarid must not be empty", ex.Message); }
public override async Task get_all_rooms_of_organisation(CalendarInformationRequest request, IServerStreamWriter <RoomReply> responseStream, ServerCallContext context) { _logger.LogInformation($"GetCalendarInformation request for {request.Calendar.CalendarId}"); _requestValidator.Validate(request); var graphCalendarClient = CreateGraphRoomHelper(request.Client); var allRooms = await graphCalendarClient.GetAllRoomsAsnc(request.Calendar); _logger.LogInformation($"Sending response for request {request}"); foreach (var replyEvent in allRooms) { if (context.CancellationToken.IsCancellationRequested) { break; } await responseStream.WriteAsync(replyEvent); } }
public override async Task get_calendar_information(CalendarInformationRequest request, IServerStreamWriter <CalendarInformationReply> responseStream, ServerCallContext context) { _logger.LogInformation($"GetCalendarInformation request for {request.Calendar.CalendarId}"); _requestValidator.Validate(request); var graphCalendarClient = CreateGraphCalendarClient(request.Client); var graphEvents = await graphCalendarClient.GetEventsAsync(request.Calendar); var azureReplyEvents = CreateReplyEventsOf(graphEvents); _logger.LogInformation($"Sending response for request {request}"); foreach (var replyEvent in azureReplyEvents) { if (context.CancellationToken.IsCancellationRequested) { break; } await responseStream.WriteAsync(replyEvent); } }
public void Validate_DefaultTimeValues_ThrowsException() { // given var request = new CalendarInformationRequest { Client = new CalendarInformationRequest.Types.Client { ClientId = ValidGuidString, ClientSecret = "mySecret", TenantId = ValidGuidString, }, Calendar = new CalendarInformationRequest.Types.Calendar { CalendarId = "*****@*****.**" } }; // when var ex = Assert.Throws <RpcException>(() => new CalendarInformationRequestValidator(_logger).Validate(request)); // then Assert.Equal(StatusCode.InvalidArgument, ex.StatusCode); Assert.Contains("timestamps not valid start_time and end_time", ex.Message); }