public void ShouldConvertQueryFromDsl() { const string query = "query"; const int projectId = 4; var queryModel = new DslDataQuery(); _queryTranslator.Setup(_ => _.ToDsl(queryModel)).Returns(query); _queryModelAccessValidator.Setup(_ => _.Validate(queryModel, projectId, false)); var result = _target.ToText(queryModel, projectId, false); result.ShouldBeEquivalentTo(query); }
public void Update( long queryId, DslDataQuery dslQuery, string name, string comment, QueryPrivacyType privacyType, QueryVisibilityType visibilityType) { using (var telemetryScope = _telemetryScopeProvider.Create <Queries>(TelemetryOperationNames.Query.Update)) { try { if (string.IsNullOrEmpty(name)) { throw new ArgumentNullException(nameof(name)); } var query = _queryRepository.GetById(queryId); if (query == null) { throw new QueryDoesNotExistsException(queryId); } telemetryScope.SetEntity(query); var canEditQuery = _queryAccessValidator.IsCanEdit(query, _userPrincipal.Info.Id); if (!canEditQuery) { throw new UnauthorizedAccessException(); } string dslQueryText = null; if (dslQuery != null) { dslQueryText = _queryModelProcessor.ToText(dslQuery, query.ProjectId, query.IsSystem); } _queryModelValidator.Validate(dslQuery); query.Comment = comment; query.JsonQuery = dslQuery.ToJson(); query.ModifiedUtc = _timeService.GetUtc(); query.Name = name; query.Privacy = (int)privacyType; query.Query = dslQueryText; query.Visibility = (int)visibilityType; _queryRepository.Save(); telemetryScope.WriteSuccess(); } catch (Exception ex) { telemetryScope.WriteException(ex); throw; } } }