Exemplo n.º 1
0
        public virtual void PublishContestResultToNotExistingContestTest()
        {
            //authenticate with valid credentials
            AuthenticationResponse authenticationResponse = AuthenticateSync(ValidCredentials);

            //check if authentication succeed
            Assert.AreEqual(ResponseStatus.STATUS_SUCCESS, authenticationResponse.Status);

            //create dummy contest

            var dummyContest = CreateDummyContest("PublishContestResultToNotExistingContestTest");

            //the authentication provides the ticket necessary to publish the contest
            ContestPublishedResponse response = PublishContestSync(authenticationResponse.Ticket, ValidCredentials.Username, dummyContest);

            Assert.AreEqual(ResponseStatus.STATUS_SUCCESS, response.Status);

            //once the contest is published test publishing contest results

            //create dummy contest results, they have to match contest metric definitions
            var results = GenerateDummyResults(LineSeriesMetric, BoxSummaryMetric);

            //generate new valid guid, but to contest that does not exist
            Random         random         = new Random();
            double         score          = random.NextDouble();
            ContestResults contestResults = new ContestResults(Guid.NewGuid().ToString(), "Mock technique", "Mock technique description", results, score, FakeBaseData);

            //reuse the same ticket and valid credentials...
            //typically it would be another user, but it doesn't matter for test purposes (it may be so the contest creator also publishes results)
            ContestResultsPublishedResponse resultPublishedResponse = PublishContestResultSync(authenticationResponse.Ticket, ValidCredentials.Username, contestResults);

            Assert.AreEqual(ResponseStatus.STATUS_FAILURE, resultPublishedResponse.Status);
            Assert.IsNotNull(resultPublishedResponse.ErrorMessage);
            Assert.AreEqual("The contest of the given id does not exists.", resultPublishedResponse.ErrorMessage);
        }
Exemplo n.º 2
0
        public virtual void PublishEmptyContestResultTest()
        {
            //authenticate with valid credentials
            AuthenticationResponse authenticationResponse = AuthenticateSync(ValidCredentials);

            //check if authentication succeed
            Assert.AreEqual(ResponseStatus.STATUS_SUCCESS, authenticationResponse.Status);

            //create dummy contest
            var dummyContest = CreateDummyContest("PublishEmptyContestResultTest");

            //the authentication provides the ticket necessary to publish the contest
            ContestPublishedResponse response = PublishContestSync(authenticationResponse.Ticket, ValidCredentials.Username, dummyContest);

            Assert.AreEqual(ResponseStatus.STATUS_SUCCESS, response.Status);

            //once the contest is published test publishing contest results

            //create dummy contest results (they have to match contest metric definitions
            Random         random         = new Random();
            double         score          = random.NextDouble();
            ContestResults contestResults = new ContestResults(dummyContest.ContestGUID, "Mock technique", "Mock technique description", new List <DatasetResultsDTO>(), score, FakeBaseData);

            //reuse the same ticket and valid credentials...
            //typically it would be another user, but it doesn't matter for test purposes (it may be so the contest creator also publishes results)
            ContestResultsPublishedResponse resultPublishedResponse = PublishContestResultSync(authenticationResponse.Ticket, ValidCredentials.Username, contestResults);

            //cannot publish empty results
            Assert.AreEqual(ResponseStatus.STATUS_FAILURE, resultPublishedResponse.Status);
            Assert.IsNotNull(resultPublishedResponse.ErrorMessage);
            Assert.AreEqual("Metric results does not match metrics defined in the contest.", resultPublishedResponse.ErrorMessage);
        }
Exemplo n.º 3
0
        public virtual void PublishContestWithIncorrectBaselineResultsTest()
        {
            //authenticate with valid credentials
            AuthenticationResponse authenticationResponse = AuthenticateSync(ValidCredentials);

            //check if authentication succeed
            Assert.AreEqual(ResponseStatus.STATUS_SUCCESS, authenticationResponse.Status);

            //create dummy contest
            var dummyContest = CreateDummyContest("PublishContestWithIncorrectBaselineResultsTest");

            //create dummy contest results that are incorrect (they do not match contest metric definitions)
            var seriesMetric   = MockContestResultsHelper.CreateDummySeriesMetricResults("Not matching series metric name", "Some description");
            var boxMetric      = MockContestResultsHelper.CreateDummyBoxSummaryMetricResults("Not matchin box metric name", "Some description");
            var resultDataset1 = CreateDummyResultsDTO("Dataset 1", seriesMetric, boxMetric); //the name of metric won't match with metric definitions in the contest
            var allResults     = new List <DatasetResultsDTO>()
            {
                resultDataset1
            };

            Random         random         = new Random();
            double         score          = random.NextDouble();
            ContestResults contestResults = new ContestResults(dummyContest.ContestGUID, "Baseline", "Baseline technique description", allResults, score, FakeBaseData);

            dummyContest.BaselineResults = contestResults;

            //the authentication provides the ticket necessary to publish the contest
            ContestPublishedResponse response = PublishContestSync(authenticationResponse.Ticket, ValidCredentials.Username, dummyContest);

            Assert.AreEqual(ResponseStatus.STATUS_FAILURE, response.Status);
            Assert.IsNotNull(response.ErrorMessage);
            Assert.AreEqual("Baseline results failed to be saved. Metric results does not match metrics defined in the contest.", response.ErrorMessage);
        }
Exemplo n.º 4
0
        public virtual void PublishContestWithBaselineResultsTest()
        {
            //authenticate with valid credentials
            AuthenticationResponse authenticationResponse = AuthenticateSync(ValidCredentials);

            //check if authentication succeed
            Assert.AreEqual(ResponseStatus.STATUS_SUCCESS, authenticationResponse.Status);

            //create dummy contest
            var dummyContest = CreateDummyContest("PublishContestWithBaselineResultsTest");

            //create dummy contest results (they have to match contest metric definitions
            Random         random         = new Random();
            double         score          = random.NextDouble();
            ContestResults contestResults = new ContestResults(dummyContest.ContestGUID, "Baseline", "Baseline technique description", DummyCorrectResults, score, FakeBaseData);

            dummyContest.BaselineResults = contestResults;

            //the authentication provides the ticket necessary to publish the contest
            ContestPublishedResponse response = PublishContestSync(authenticationResponse.Ticket, ValidCredentials.Username, dummyContest);

            Assert.AreEqual(ResponseStatus.STATUS_SUCCESS, response.Status);
            Assert.IsNull(response.ErrorMessage);
            Assert.IsNotNull(response.ContestWebsiteLink);
        }
Exemplo n.º 5
0
        protected ContestPublishedResponse PublishContestSync(string ticket, string username, Contest dummyContest)
        {
            ContestPublishedResponse response = DoAsyncCallAsSynchronous <ContestPublishedResponse>(
                (Callback <ContestPublishedResponse> callback) =>
            {
                WebService.PublishContest(ticket, username, dummyContest, callback);
            });

            return(response);
        }
Exemplo n.º 6
0
        public virtual void PublishContestTest()
        {
            //authenticate with valid credentials
            AuthenticationResponse authenticationResponse = AuthenticateSync(ValidCredentials);

            //check if authentication succeed
            Assert.AreEqual(ResponseStatus.STATUS_SUCCESS, authenticationResponse.Status);

            //create dummy contest
            var dummyContest = CreateDummyContest("PublishContestTest");

            //the authentication provides the ticket necessary to publish the contest
            ContestPublishedResponse response = PublishContestSync(authenticationResponse.Ticket, ValidCredentials.Username, dummyContest);

            Assert.AreEqual(ResponseStatus.STATUS_SUCCESS, response.Status);
            Assert.IsNull(response.ErrorMessage);
            Assert.IsNotNull(response.ContestWebsiteLink);
        }
Exemplo n.º 7
0
        public virtual void PublishContestResultTest()
        {
            //authenticate with valid credentials
            AuthenticationResponse authenticationResponse = AuthenticateSync(ValidCredentials);

            //check if authentication succeed
            Assert.AreEqual(ResponseStatus.STATUS_SUCCESS, authenticationResponse.Status);

            //create dummy contest
            var dummyContest = CreateDummyContest("PublishContestResultTest");

            //the authentication provides the ticket necessary to publish the contest
            ContestPublishedResponse response = PublishContestSync(authenticationResponse.Ticket, ValidCredentials.Username, dummyContest);

            Assert.AreEqual(ResponseStatus.STATUS_SUCCESS, response.Status);

            //once the contest is published test publishing contest results

            Random         random         = new Random();
            double         score          = random.NextDouble();
            ContestResults contestResults = new ContestResults(dummyContest.ContestGUID,
                                                               "Mock technique", "Mock technique description", DummyCorrectResults, score, FakeBaseData);

            //reuse the same ticket and valid credentials...
            //typically it would be another user, but it doesn't matter for test purposes (it may be so the contest creator also publishes results)
            ContestResultsPublishedResponse resultPublishedResponse = PublishContestResultSync(authenticationResponse.Ticket, ValidCredentials.Username, contestResults);

            Assert.AreEqual(ResponseStatus.STATUS_SUCCESS, resultPublishedResponse.Status);
            Assert.IsNull(resultPublishedResponse.ErrorMessage);

            //create other set of results for the same metrics
            var lineSeriesMetric    = MockContestResultsHelper.CreateDummySeriesMetricResults(m_mockSeriesMetricName, "Mock series metric description");
            var boxSummaryMetric    = MockContestResultsHelper.CreateDummyBoxSummaryMetricResults(m_mockBoxPlotMetricName, "Mock box plot metric description");
            var otherCorrectResults = GenerateDummyResults(lineSeriesMetric, boxSummaryMetric);

            score                   = random.NextDouble();
            contestResults          = new ContestResults(dummyContest.ContestGUID, "Another technique", "Another technique description", otherCorrectResults, score, FakeBaseData);
            resultPublishedResponse = PublishContestResultSync(authenticationResponse.Ticket, ValidCredentials.Username, contestResults);

            Assert.AreEqual(ResponseStatus.STATUS_SUCCESS, resultPublishedResponse.Status);
            Assert.IsNull(resultPublishedResponse.ErrorMessage);
            Assert.IsNotNull(resultPublishedResponse.ContestWebsiteLink);
        }
Exemplo n.º 8
0
        public virtual void PublishNotMatchingContestResultTest()
        {
            //authenticate with valid credentials
            AuthenticationResponse authenticationResponse = AuthenticateSync(ValidCredentials);

            //check if authentication succeed
            Assert.AreEqual(ResponseStatus.STATUS_SUCCESS, authenticationResponse.Status);

            //create dummy contest
            var dummyContest = CreateDummyContest("PublishNotMatchingContestResultTest");

            //the authentication provides the ticket necessary to publish the contest
            ContestPublishedResponse response = PublishContestSync(authenticationResponse.Ticket, ValidCredentials.Username, dummyContest);

            Assert.AreEqual(ResponseStatus.STATUS_SUCCESS, response.Status);

            //once the contest is published test publishing contest results

            //create dummy contest results, that have metric that does not match contest metric definitions
            var seriesMetric   = MockContestResultsHelper.CreateDummySeriesMetricResults("Not matching series metric name", "Some description");
            var boxMetric      = MockContestResultsHelper.CreateDummyBoxSummaryMetricResults("Not matchin box metric name", "Some description");
            var resultDataset1 = CreateDummyResultsDTO("Dataset 1", seriesMetric, boxMetric); //the name of metric won't match with metric definitions in the contest
            var allResults     = new List <DatasetResultsDTO>()
            {
                resultDataset1
            };

            Random         random         = new Random();
            double         score          = random.NextDouble();
            ContestResults contestResults = new ContestResults(dummyContest.ContestGUID, "Mock technique", "Mock technique description", allResults, score, FakeBaseData);

            //reuse the same ticket and valid credentials...
            //typically it would be another user, but it doesn't matter for test purposes (it may be so the contest creator also publishes results)
            ContestResultsPublishedResponse resultPublishedResponse = PublishContestResultSync(authenticationResponse.Ticket, ValidCredentials.Username, contestResults);

            //cannot publish empty results
            Assert.AreEqual(ResponseStatus.STATUS_FAILURE, resultPublishedResponse.Status);
            Assert.IsNotNull(resultPublishedResponse.ErrorMessage);
            Assert.AreEqual("Metric results does not match metrics defined in the contest.", resultPublishedResponse.ErrorMessage);
        }
Exemplo n.º 9
0
        public virtual void PublishContestResultAfterDeadlineTest()
        {
            //authenticate with valid credentials
            AuthenticationResponse authenticationResponse = AuthenticateSync(ValidCredentials);

            //check if authentication succeed
            Assert.AreEqual(ResponseStatus.STATUS_SUCCESS, authenticationResponse.Status);

            //create dummy contest
            var dummyContest = CreateDummyContest("PublishContestResultAfterDeadlineTest");

            //set some deadline, that has already passed
            dummyContest.SetDeadline(new DateTime(1999, 1, 12));

            //the authentication provides the ticket necessary to publish the contest
            ContestPublishedResponse response = PublishContestSync(authenticationResponse.Ticket, ValidCredentials.Username, dummyContest);

            Assert.AreEqual(ResponseStatus.STATUS_SUCCESS, response.Status);

            //once the contest is published test publishing contest results

            //create dummy contest results
            var results = GenerateDummyResults(LineSeriesMetric, BoxSummaryMetric);

            Random         random         = new Random();
            double         score          = random.NextDouble();
            ContestResults contestResults = new ContestResults(dummyContest.ContestGUID, "Mock technique", "Mock technique description", results, score, FakeBaseData);

            //reuse the same ticket and valid credentials...
            //typically it would be another user, but it doesn't matter for test purposes (it may be so the contest creator also publishes results)
            ContestResultsPublishedResponse resultPublishedResponse = PublishContestResultSync(authenticationResponse.Ticket, ValidCredentials.Username, contestResults);

            Assert.AreEqual(ResponseStatus.STATUS_FAILURE, resultPublishedResponse.Status);
            Assert.IsNotNull(resultPublishedResponse.ErrorMessage);
            Assert.AreEqual("The contest results could not been published, because it is passed the deadline.", resultPublishedResponse.ErrorMessage);
        }