Пример #1
0
        public void DeleteAsyncTest(
            string testCaseName,
            string criteriaJson,
            string expectedResultJson)
        {
            // Arguments are serialized so that test cases show as individual tests in Test Explorer
            var criteria       = JsonConvert.DeserializeObject <Criteria <IEnumerable <string> > >(criteriaJson);
            var expectedResult = JsonConvert.DeserializeObject <Result <EmptyModel> >(expectedResultJson);

            // Arrange
            IRepository <DataPoint> repository = Substitute.For <IRepository <DataPoint> >();

            for (int i = 0; i < DefaultDataPoints.Length - 1; i++)
            {
                repository.DeleteAsync(DefaultDataPoints[i].Id).Returns(true);
                repository.GetAsync(DefaultDataPoints[i].Id).Returns(DefaultDataPoints[i]);
            }
            repository.DeleteAsync(DefaultDataPoints[DefaultDataPoints.Length - 1].Id).Returns(false);
            repository.DeleteAsync(InvalidId).Returns(false);
            repository.GetAsync(DefaultDataPoints[DefaultDataPoints.Length - 1].Id).Returns(DefaultDataPoints[DefaultDataPoints.Length - 1]);
            repository.GetAsync(InvalidId).Returns(null as DataPoint);
            var manager = new DataPointManager(repository);

            // Act
            var task = manager.DeleteAsync(criteria);

            task.Wait();
            var result = task.Result;

            // Assert
            Assert.Equal(expectedResult.Message, result.Message);
            Assert.Equal(expectedResult.Success, result.Success);
        }
Пример #2
0
        // api/myurl/push  [  { name='asdf', value=1.1}, {name='xyz', value=-3}   ]
        public string Push([FromUri] string slug, [FromBody] List <VariableDataPush> data)
        {
            if (string.IsNullOrEmpty(slug))
            {
                throw new Exception("URL must be in format: /api/{slug}/push");
            }
            if (data == null || !data.Any())
            {
                throw new Exception("No data points found.  Try: using contentType:'application/json; charset=utf-8', and request body '[{name:\"x\", value:\"1\"}]' ");
            }
            var manager = new DataPointManager();

            foreach (var p in data)
            {
                var duplicates = data.Where(x => x.name == p.name);
                if (duplicates.Count() > 1)
                {
                    throw new Exception("Multiple values for single variable name [" + p.name + "]");
                }
                manager.AddRawDataPoint(slug, p);
            }
            return("");
        }
Пример #3
0
        public void UpsertAsyncTest(
            string testCaseName,
            string criteriaJson,
            string expectedResultJson)
        {
            // Arguments are serialized so that test cases show as individual tests in the xUnit Test Explorer
            var criteria       = JsonConvert.DeserializeObject <Criteria <IEnumerable <DataPoint> > >(criteriaJson);
            var expectedResult = JsonConvert.DeserializeObject <Result <List <DataPoint> > >(expectedResultJson);

            // Arrange
            IRepository <DataPoint> repository = Substitute.For <IRepository <DataPoint> >();

            repository.GetAsync(NewDataPoint.Id).Returns(null as DataPoint);
            repository.GetAsync(ValidModifiedDataPoint.Id).Returns(DefaultDataPoints[0]);
            repository.GetAsync(InvalidModifiedDataPoint.Id).Returns(DefaultDataPoints[1]);
            var correctedArg = Arg.Is <DataPoint>(d => d.Id == InvalidModifiedDataPoint.Id &&
                                                  d.CategoryId == CorrectedModifiedDataPoint.CategoryId &&
                                                  d.Stamp == InvalidModifiedDataPoint.Stamp &&
                                                  d.Value == InvalidModifiedDataPoint.Value);

            repository.UpsertAsync(correctedArg).Returns(CorrectedModifiedDataPoint);
            repository.UpsertAsync(Arg.Is <DataPoint>(d => d.Id == DefaultDataPoints[2].Id)).Returns(null as DataPoint);
            repository.UpsertAsync(Arg.Is <DataPoint>(d => d.Id == ValidModifiedDataPoint.Id)).Returns(ValidModifiedDataPoint);
            var manager = new DataPointManager(repository);

            // Act
            var task = manager.UpsertAsync(criteria);

            task.Wait();
            var result = task.Result;

            // Assert
            Assert.True(result.Message.StartsWith(expectedResult.Message)); // StartsWith used to cover long validation messages
            Assert.Equal(expectedResult.Success, result.Success);
            Assert.True(DataPointsAreEqual(result.Value, expectedResult.Value));
        }
Пример #4
0
        public ActionResult Index(string slug)
        {
            var acct = new DataPointManager().GetOrCreateAccount(slug);

            return(View(acct));
        }