RavenFS.Synchronization.Rdc.Wrapper.StorageSignatureRepository.GetByFileName C# (CSharp) Метод

GetByFileName() публичный Метод

public GetByFileName ( ) : IEnumerable
Результат IEnumerable
		public IEnumerable<SignatureInfo> GetByFileName()
		{
			IList<SignatureInfo> result = null;
			_storage.Batch(
				accessor =>
					{
						result = (from item in accessor.GetSignatures(_fileName)
						          orderby item.Level
						          select new SignatureInfo(item.Level, _fileName)
							                 {
								                 Length = accessor.GetSignatureSize(item.Id, item.Level)
							                 }).ToList();
					});
			if (!result.Any())
				throw new FileNotFoundException("Cannot find signatures for " + _fileName);

			return result;
		}

Usage Example

        public void Should_get_SignaturInfos_by_file_name()
        {
            var tested = new StorageSignatureRepository(transactionalStorage, "test");

            transactionalStorage.Batch(accessor =>
            {
                accessor.AddSignature("test", 0, stream => stream.Write(new byte[] { 3 }, 0, 1));
                accessor.AddSignature("test", 1, stream => stream.Write(new byte[] { 3 }, 0, 1));
                accessor.AddSignature("test", 2, stream => stream.Write(new byte[] { 3 }, 0, 1));
            });

            var signatureInfos = tested.GetByFileName().ToList();
            Assert.Equal(3, signatureInfos.Count());
            foreach (var item in signatureInfos)
            {
                Assert.Equal(1, item.Length);
            }
        }