コード例 #1
0
ファイル: Caching.cs プロジェクト: forki/GoldenHammer
        public async Task MultipleWrittenValuesCanBeRead()
        {
            var storage = new LocalDataCache(_temp);

            var shas = new Dictionary <string, string>();

            foreach (var value in TestValues.SelectMany(x => x).Cast <string>())
            {
                var sha = await storage.Store(async stream => {
                    var bytes = Encoding.UTF8.GetBytes(value);
                    await stream.WriteAsync(bytes, 0, bytes.Length);
                });

                shas[value] = sha;
            }

            foreach (var value in shas.Keys)
            {
                using (var stream = await storage.Open(shas[value]))
                    using (var reader = new StreamReader(stream, Encoding.UTF8)) {
                        var read = await reader.ReadToEndAsync();

                        read.ShouldBe(value);
                    }
            }
        }
コード例 #2
0
ファイル: Caching.cs プロジェクト: forki/GoldenHammer
        public async Task UnknownShaThrows()
        {
            var storage = new LocalDataCache(_temp);

            var exception = await Assert.ThrowsAsync <FileNotFoundException>(async() => {
                await storage.Open("unknown");
            });

            exception.FileName.ShouldBe("unknown");
        }
コード例 #3
0
ファイル: Caching.cs プロジェクト: forki/GoldenHammer
        public async Task WrittenValuesCanBeRead(string value)
        {
            var storage = new LocalDataCache(_temp);

            var sha = await storage.Store(async stream => {
                var bytes = Encoding.UTF8.GetBytes(value);
                await stream.WriteAsync(bytes, 0, bytes.Length);
            });

            using (var stream = await storage.Open(sha))
                using (var reader = new StreamReader(stream, Encoding.UTF8)) {
                    var read = await reader.ReadToEndAsync();

                    read.ShouldBe(value);
                }
        }
コード例 #4
0
ファイル: Caching.cs プロジェクト: forki/GoldenHammer
        public void Construct()
        {
            var storage = new LocalDataCache(_temp);

            storage.ShouldNotBeNull();
        }