public void GetUserFeeds_UserIdRequired()
        {
            //Arrange
            IFeedManager feedManager = new FeedManager(_database);

            //Act
            var user = new User();
            var response = feedManager.GetUserFeeds(user);

            //Assert
            Assert.AreEqual(ErrorLevel.Error, response.Status.ErrorLevel);
            Assert.AreEqual("User Id is required", response.Status.ErrorMessage);
        }
        public void GetUserFeedsTest()
        {
            //Arrange
            IFeedManager feedManager = new FeedManager(_database);

            //Act
            var user = new User
                {
                    Id = "ravenuser/1"
                };
            var response = feedManager.GetUserFeeds(user);

            //Assert
            Assert.AreEqual(ErrorLevel.None, response.Status.ErrorLevel, response.Status.ErrorMessage);
        }
        public void GetUserFeeds_AfterAdd()
        {
            //Arrange
            IFeedManager feedManager = new FeedManager(_database);

            //Act
            const string url = "http://new.feed.url";
            var userFeed = new UserFeed
            {
                Feed = new Feed
                {
                    Url = url
                },
                RavenUserId = "ravenuser/2"
            };
            var response = feedManager.AddUserFeed(userFeed);

            //Assert
            Assert.AreEqual(ErrorLevel.None, response.Status.ErrorLevel, response.Status.ErrorMessage);
            //TODO there has to be a better way to deal with eventual consistency here
            Thread.Sleep(500);
            var getFeedsResponse = feedManager.GetUserFeeds(new User
                {
                    Id = "ravenuser/2"
                });
            Assert.AreEqual(ErrorLevel.None, getFeedsResponse.Status.ErrorLevel, getFeedsResponse.Status.ErrorMessage);
            Assert.IsNotNull(getFeedsResponse.Data);
            Assert.IsNotEmpty(getFeedsResponse.Data);
            var newFeed = getFeedsResponse.Data.FirstOrDefault(f => f.Feed.Url == url);
            Assert.IsNotNull(newFeed);
            Assert.AreEqual(newFeed.Feed.Url, url);
            Assert.AreEqual("ravenuser/2", newFeed.RavenUserId);
        }
        public void GetUserFeeds()
        {
            //Arrange
            IFeedManager feedManager = new FeedManager(_database);

            //Act
            var user = new User
                {
                    Id = "ravenuser/1"
                };
            var response = feedManager.GetUserFeeds(user);

            //Assert
            Assert.AreEqual(ErrorLevel.None, response.Status.ErrorLevel, response.Status.ErrorMessage);
            Assert.IsNotNull(response.Data);
            Assert.IsNotEmpty(response.Data);
            var firstFeed = response.Data.First();
            Assert.IsNotNull(firstFeed);
            Assert.IsNotNull(firstFeed.Name);
        }