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); }
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); }