public UploadAttempt(IntegrityDataset ds, List<Qualifier> qualifiers, ref string payload, DatasetFormat format, Type type)
 {
     this._dataset = ds;
     this._qualifiers = qualifiers;
     this._fileXml = payload;
     this._format = format;
     this._uploadType = type;
 }
        public void PaginationParameters()
        {
            IntegrityDataset ds = new IntegrityDataset();
            var mockService = new Mock<IIntegrityHttpService>();
            Search search = new Search(ds, mockService.Object);

            Assert.AreEqual("page=1&per_page=500", search.PaginationParams(1));
        }
        public void SearchWithAuditIdParam()
        {
            IntegrityDataset ds = new IntegrityDataset();
            var mockService = new Mock<IIntegrityHttpService>();
            Search search = new Search(ds, mockService.Object);
            search.AuditId = 100;

            string query = "audit_id_gt=100";

            Assert.AreEqual(query, search.ToQueryConditions());
        }
        public void SearchWithManyResults()
        {
            IntegrityDataset ds = new IntegrityDataset();
            var mockService = new Mock<IIntegrityHttpService>();
            Search search = new Search(ds, mockService.Object);
            string searchConditions = search.ToQueryConditions() + "&";

            mockService.Setup(service => service.GetSearchResults(0, searchConditions + search.PaginationParams(1))).Returns("<people><row><name>Billy</name></row></people>");
            mockService.Setup(service => service.GetSearchResults(0, searchConditions + search.PaginationParams(2))).Returns("<people><row><name>Tommy</name></row></people>");
            mockService.Setup(service => service.GetSearchResults(0, searchConditions + search.PaginationParams(3))).Returns("<people></people>");

            Assert.Greater(search.Execute().Length, 1);
        }
        public void SearchWithMultipleConditions()
        {
            IntegrityDataset ds = new IntegrityDataset();
            ds.m_tableName = "people";
            var mockService = new Mock<IIntegrityHttpService>();
            Search search = new Search(ds, mockService.Object);
            search.AddCondition("name", "bob");
            search.AddCondition("name", "sally");

            string query = "[people][name][exactly][]=bob&";
            query += "[people][name][exactly][]=sally&";
            query += _audit_id_param;
            Assert.AreEqual(query, search.ToQueryConditions());
        }
        public void AddCondition()
        {
            IntegrityDataset ds = new IntegrityDataset();
            ds.m_tableName = "people";
            var mockService = new Mock<IIntegrityHttpService>();
            Search search = new Search(ds, mockService.Object);
            string condition = "[people][name][exactly][]=bob";
            string columnName, value;
            columnName = "name";
            value = "bob";

            List<string> conditions = new List<string> { condition };
            search.AddCondition(columnName, value);
            Assert.AreEqual(conditions, search.Conditions);
        }
        public void SearchWithMultipleQualifiers()
        {
            IntegrityDataset ds = new IntegrityDataset();
            ds.m_tableName = "people";
            List<Qualifier> qualifiers = new List<Qualifier>();
            qualifiers.Add(new Qualifier("name", new string[] { "bob" }));
            qualifiers.Add(new Qualifier("state", new string[] { "VIC" }));

            ds.m_qualifiers = qualifiers;
            var mockService = new Mock<IIntegrityHttpService>();
            Search search = new Search(ds, mockService.Object);

            string query = "upload_qualifiers[0][dataset_attribute_name]=name";
            query += "&upload_qualifiers[0][qualifier_values][]=bob";
            query += "&upload_qualifiers[1][dataset_attribute_name]=state";
            query += "&upload_qualifiers[1][qualifier_values][]=VIC&";
            query += _audit_id_param;

            Assert.AreEqual(query, search.ToQueryConditions());
        }
        public void SearchWithNoResults()
        {
            IntegrityDataset ds = new IntegrityDataset();
            var mockService = new Mock<IIntegrityHttpService>();
            Search search = new Search(ds, mockService.Object);
            string searchConditions = search.ToQueryConditions() + "&" + search.PaginationParams(1);

            mockService.Setup(service => service.GetSearchResults(0, searchConditions)).Returns("<people></people>");

            Assert.AreEqual(0, search.Execute().Length);
        }
    private IntegrityDataset buildDataset(XmlNode ds_node)
    {
        dynamic ds = new IntegrityDataset();
        ds.m_id = int.Parse(ds_node.SelectSingleNode("id").InnerText);
        ds.m_bulk_allowed = bool.Parse(ds_node.SelectSingleNode("is-bulk-allowed").InnerText);
        ds.m_incremental_allowed = bool.Parse(ds_node.SelectSingleNode("is-incremental-allowed").InnerText);
        ds.m_name = ds_node.SelectSingleNode("name").InnerText;
        ds.m_tableName = ds_node.SelectSingleNode("table-name").InnerText;
        ds.m_qualifiers = new List<Qualifier>();

        foreach (XmlNode node in ds_node.SelectNodes("qualifiers/qualifier")) {
            ds.m_qualifiers.Add(buildQualifier(node));
        }

        ds.m_dataset_formats = new List<DatasetFormat>();
        foreach (XmlNode node in ds_node.SelectNodes("dataset-formats/dataset-format")) {
            ds.m_dataset_formats.Add(buildDatasetFormat(node));
        }

        return ds;
    }
Exemple #10
0
 public Search(IntegrityDataset dataset, IIntegrityHttpService service)
 {
     AuditId = 0;
     _dataset = dataset;
     _service = service;
 }
    /// <summary>
    /// Upload a payload to integrity
    /// </summary>
    /// <param name="dataset">Dataset to upload</param>
    /// <param name="format">Format to use</param>
    /// <param name="qualifiers">List of qualifiers for the upload</param>
    /// <param name="payload">File  contents to upload</param>
    /// <param name="type">Type of the upload</param>
    /// <returns></returns>
    public UploadAttemptResponse Upload(IntegrityDataset dataset, DatasetFormat format, List<Qualifier> qualifiers, ref string payload, UploadAttempt.Type type)
    {
        UploadAttempt upload_attempt = new UploadAttempt(dataset, qualifiers, ref payload, format, type);

          UploadAttemptResponse created_status = default(UploadAttemptResponse);
          created_status = _integrity_interface.CreateUpload(ref upload_attempt);
          if (!created_status.WasSuccess)
          {
        return created_status;
          }

          UploadAttemptResponse validation_status = _integrity_interface.WaitUntilValidated(upload_attempt.ID);
          if (!validation_status.WasSuccess)
          {
          return validation_status;
          }

          UploadAttemptResponse upload_status = _integrity_interface.Upload(upload_attempt.ID);
          if (!upload_status.WasSuccess)
          {
          return upload_status;
          }

          return _integrity_interface.WaitUntilUploaded(upload_attempt.ID);
    }
    /// <summary>
    /// Create a new Search object with the provided qualifiers as parameters
    /// </summary>
    /// <param name="datasetName">Name of dataset</param>
    /// <param name="qualifier_selections">Qualifiers to search against as a dictionary of attribute name to list of qualifier values</param>
    /// <returns></returns>
    public Search NewSearch(string datasetName, IDictionary<string, IEnumerable<string>> qualifier_selections)
    {
        var config_dataset = _configuration.GetDataset(datasetName);
        var search_dataset = new IntegrityDataset();
        search_dataset.m_id = config_dataset.m_id;
        search_dataset.m_name = config_dataset.m_name;
        search_dataset.m_tableName = config_dataset.m_tableName;

        var qualifiers = new List<Qualifier>();

        foreach (var qualifier_selection in qualifier_selections)
        {
          qualifiers.Add(new Qualifier(qualifier_selection.Key, qualifier_selection.Value.ToArray()));
        }

        search_dataset.m_qualifiers = qualifiers;

        return new Search(search_dataset, _integrity_service);
    }
 /// <summary>
 /// Progresses a payload through the whole upload process, using all the qualifiers the user has access to
 /// </summary>
 /// <param name="dataset">Dataset to upload to</param>
 /// <param name="dataset_format">Format of the payload</param>
 /// <param name="payload">File contents to upload</param>
 /// <param name="type">Type of upload to perform</param>
 /// <returns></returns>
 public UploadAttemptResponse ExhaustiveDatasetUpload(IntegrityDataset dataset, DatasetFormat dataset_format, ref string payload, UploadAttempt.Type type)
 {
     return Upload(dataset, dataset_format, _configuration.GetQualifiersForDataset(dataset.m_id), ref payload, type);
 }