Beispiel #1
0
        public void GetTagFile_NormalInput_ReturnsTagFile()
        {
            // Arrange
            TagFileS3Access fakeTagFileS3Access = new TagFileS3Access();

            var fakeS3Client = Substitute.For <IMyAmazonS3Client>();

            fakeTagFileS3Access.S3Client = fakeS3Client;
            var getObjectRequest = S3AccessTests.GetGetObjectRequest("test", "test");

            // we write some fake content to the stream
            string expectedTagFile = "scripture-1\ntheology-1\nfun-1,2\nbunny-2\npaul-2";

            GetObjectResponse fakeResponse = WriteContentToStream(expectedTagFile);


            fakeS3Client.GetObjectAsync(getObjectRequest, default(System.Threading.CancellationToken)).ReturnsForAnyArgs(fakeResponse);

            // Act
            var response = fakeTagFileS3Access.GetTagFile();

            response.Wait();
            TagFile result = response.Result;

            // Assert
            // I'm generally not a fan of multiple assertions, but I am drawing a blank here
            Assert.That(result != null);
            Assert.That(result.Count == 5);
            Assert.That(result.GetIdsFromTag("fun").Count == 2);
        }
Beispiel #2
0
        public async Task <List <BlogPost> > GetBlogPostIdsFromTag(string tag)
        {
            TagFile tagFile = await GetTagFile();

            List <BlogPost> posts = new List <BlogPost>();

            foreach (var id in tagFile.GetIdsFromTag(tag))
            {
                posts.Add(new BlogPost(Int32.Parse(id)));
            }

            return(posts);
        }