示例#1
0
        public static TsvDataSheet Download(AbsoluteUri location)
        {
            if (null == location)
            {
                throw new ArgumentNullException("location");
            }

            TsvDataSheet tsv = null;

            var request = WebRequest.Create((Uri)location);

            using (var response = request.GetResponse())
            {
                using (var stream = response.GetResponseStream())
                {
                    if (null != stream)
                    {
                        using (var reader = new StreamReader(stream))
                        {
#if NET20
                            var file = new FileInfo(StringExtensionMethods.FormatWith("{0}.tsv", AlphaDecimal.Random()));
                            FileInfoExtensionMethods.Create(file, reader.ReadToEnd());
#else
                            var file = new FileInfo("{0}.tsv".FormatWith(AlphaDecimal.Random()));
                            file.Create(reader.ReadToEnd());
#endif

                            tsv = new TsvDataSheet(file);
                        }
                    }
                }
            }

            return(tsv);
        }
 public PostalAddressFileKey(AlphaDecimal urn,
                             AlphaDecimal umr)
     : this()
 {
     UniqueDeliveryPointReferenceNumber     = urn;
     UniqueMultipleResidenceReferenceNumber = umr;
 }
        public void op_Verify_IRepository_whenKeyIsDifferent()
        {
            var obj = new RepositorySelectUrn <RandomObject>
            {
                Record1 =
                {
                    Key = AlphaDecimal.Random()
                }
            };

            var repository = new Mock <IRepository <RandomObject> >();

            repository
            .Setup(x => x.Insert(obj.Record1))
            .Returns(obj.Record1)
            .Verifiable();

            var record = new Mock <IRecord <RandomObject> >();

            record
            .SetupGet(x => x.Key)
            .Returns(AlphaDecimal.Random());
            record
            .SetupGet(x => x.Urn)
            .Returns(obj.Record1.Urn);
            repository
            .Setup(x => x.Select(obj.Record1.Urn))
            .Returns(record.Object)
            .Verifiable();

            Assert.Throws <RepositoryTestException>(() => obj.Verify(repository.Object));

            repository.VerifyAll();
        }
        private static IRecord <T> ToRecord(XmlNode node)
        {
            if (null == node)
            {
                return(null);
            }

            if (null == node.Attributes)
            {
                return(null);
            }

            return(new Record <T>
            {
                Cacheability = node.Attributes["cacheability"].Value,
                Created = XmlConvert.ToDateTime(node.Attributes["created"].Value, XmlDateTimeSerializationMode.Utc),
                Etag = node.Attributes["etag"].Value,
                Expiration = node.Attributes["expiration"].Value,
                Key = AlphaDecimal.FromString(node.Attributes["key"].Value),
                Modified = XmlConvert.ToDateTime(node.Attributes["modified"].Value, XmlDateTimeSerializationMode.Utc),
                Status = XmlConvert.ToInt32(node.Attributes["status"].Value),
                Urn = node.Attributes["urn"].Value,
                Value = node.InnerXml.XmlDeserialize <T>()
            });
        }
        public void op_Verify_IRepository()
        {
            var key = AlphaDecimal.Random();

            var obj = new RepositoryModifiedSinceKey <RandomObject>
            {
                Record1 =
                {
                    Key = key
                }
            };

            var repository = new Mock <IRepository <RandomObject> >();

            repository
            .Setup(x => x.Insert(obj.Record1))
            .Returns(obj.Record1)
            .Verifiable();
            repository
            .Setup(x => x.ModifiedSince(key, DateTime.MaxValue))
            .Returns(false)
            .Verifiable();
            repository
            .Setup(x => x.ModifiedSince(key, DateTime.MinValue))
            .Returns(true)
            .Verifiable();

            obj.Verify(repository.Object);

            repository.VerifyAll();
        }
        protected override void OnVerify(IRepository <T> repository)
        {
            if (null == repository)
            {
                throw new ArgumentNullException("repository");
            }

            repository.Insert(Record1);

            RepositoryException expected = null;

            try
            {
                Record2.Key = AlphaDecimal.Random();
                repository.Update(Record2);
            }
            catch (RepositoryException exception)
            {
                expected = exception;
            }
            catch (Exception exception)
            {
                throw new RepositoryTestException(Resources.Repository_UnexpectedException_ExceptionMessage, exception);
            }

            if (null == expected)
            {
                throw new RepositoryTestException(Resources.Repository_ExpectExceptionWhenRecordKeyNotFound_UnitTestExceptionMessage.FormatWith("Update"));
            }
        }
        public void op_ToString_whenRecordNullXml()
        {
            var key    = AlphaDecimal.Random();
            var record = new Record <string>
            {
                Cacheability = "public",
                Created      = new DateTime(1999, 12, 31, 01, 00, 00, 00),
                Etag         = "\"xyz\"",
                Expiration   = "P1D",
                Key          = key,
                Modified     = new DateTime(2001, 12, 31, 01, 00, 00, 00),
                Status       = 200,
                Urn          = "urn://example.com/abc",
                Value        = null
            };

            var obj = new RecordFile(record);

            var expected = new StringBuilder();

            expected.AppendLine("urn: urn://example.com/abc");
            expected.AppendLine("key: " + key);
            expected.AppendLine("etag: \"xyz\"");
            expected.AppendLine("created: 1999-12-31T01:00:00Z");
            expected.AppendLine("modified: 2001-12-31T01:00:00Z");
            expected.AppendLine("cacheability: public");
            expected.AppendLine("expiration: P1D");
            expected.AppendLine("status: 200");
            expected.AppendLine(string.Empty);

            var actual = obj.ToString();

            Assert.Equal(expected.ToString(), actual);
        }
        public void op_Verify_IRepository_whenModifiedSinceMaxDate()
        {
            var key = AlphaDecimal.Random();

            var obj = new RepositoryModifiedSinceKey <RandomObject>
            {
                Record1 =
                {
                    Key = key
                }
            };

            var repository = new Mock <IRepository <RandomObject> >();

            repository
            .Setup(x => x.Insert(obj.Record1))
            .Returns(obj.Record1)
            .Verifiable();
            repository
            .Setup(x => x.ModifiedSince(key, DateTime.MaxValue))
            .Returns(true)
            .Verifiable();

            Assert.Throws <RepositoryTestException>(() => obj.Verify(repository.Object));

            repository.VerifyAll();
        }
        public void op_Verify_IRepository_whenFalse()
        {
            var key = AlphaDecimal.Random();

            var obj = new RepositoryExistsKey <RandomObject>
            {
                Record1 =
                {
                    Key = key
                }
            };

            var repository = new Mock <IRepository <RandomObject> >();

            repository
            .Setup(x => x.Insert(obj.Record1))
            .Returns(obj.Record1)
            .Verifiable();
            repository
            .Setup(x => x.Exists(key))
            .Returns(false)
            .Verifiable();

            Assert.Throws <RepositoryTestException>(() => obj.Verify(repository.Object));

            repository.VerifyAll();
        }
        public void op_Verify_IRepository_whenUrnIsDifferent()
        {
            var key = AlphaDecimal.Random();

            var obj = new RepositoryToUrnKey <RandomObject>
            {
                Record1 =
                {
                    Key = key
                }
            };

            var repository = new Mock <IRepository <RandomObject> >();

            repository
            .Setup(x => x.Insert(obj.Record1))
            .Returns(obj.Record1)
            .Verifiable();
            repository
            .Setup(x => x.ToUrn(key))
            .Returns("urn://example.com/" + Guid.NewGuid())
            .Verifiable();

            Assert.Throws <RepositoryTestException>(() => obj.Verify(repository.Object));

            repository.VerifyAll();
        }
        public void op_Verify_IRepository_whenNullIsReturned()
        {
            var key = AlphaDecimal.Random();

            var obj = new RepositorySelectKey <RandomObject>
            {
                Record1 =
                {
                    Key = key
                }
            };

            var repository = new Mock <IRepository <RandomObject> >();

            repository
            .Setup(x => x.Insert(obj.Record1))
            .Returns(obj.Record1)
            .Verifiable();
            repository
            .Setup(x => x.Select(key))
            .Returns(null as IRecord <RandomObject>)
            .Verifiable();

            Assert.Throws <RepositoryTestException>(() => obj.Verify(repository.Object));

            repository.VerifyAll();
        }
        public void op_Verify_IRepository()
        {
            var key = AlphaDecimal.Random();

            var obj = new RepositorySelectKey <RandomObject>
            {
                Record1 =
                {
                    Key = key
                }
            };

            var repository = new Mock <IRepository <RandomObject> >();

            repository
            .Setup(x => x.Insert(obj.Record1))
            .Returns(obj.Record1)
            .Verifiable();
            repository
            .Setup(x => x.Select(key))
            .Returns(obj.Record1)
            .Verifiable();

            obj.Verify(repository.Object);

            repository.VerifyAll();
        }
示例#13
0
        public void op_Verify_IRepository_whenExists()
        {
            var obj = new RepositoryDeleteUrn <RandomObject>
            {
                Record1 =
                {
                    Key = AlphaDecimal.Random()
                }
            };

            var repository = new Mock <IRepository <RandomObject> >();

            repository
            .Setup(x => x.Insert(obj.Record1))
            .Returns(obj.Record1)
            .Verifiable();
            repository
            .Setup(x => x.Delete(obj.Record1.Urn))
            .Returns(true)
            .Verifiable();
            repository
            .Setup(x => x.Exists(obj.Record1.Urn))
            .Returns(true)
            .Verifiable();

            Assert.Throws <RepositoryTestException>(() => obj.Verify(repository.Object));

            repository.VerifyAll();
        }
示例#14
0
 private static FileInfo GetFile(AlphaDecimal key)
 {
     return(FileRepositoryConfiguration
            .Directory()
            .GetFiles("{0}.record".FormatWith(key), SearchOption.AllDirectories)
            .FirstOrDefault());
 }
        public void op_Verify_IRepository()
        {
            var obj = new RepositoryToKeyUrn <RandomObject>
            {
                Record1 =
                {
                    Key = AlphaDecimal.Random()
                }
            };

            var repository = new Mock <IRepository <RandomObject> >();

            repository
            .Setup(x => x.Insert(obj.Record1))
            .Returns(obj.Record1)
            .Verifiable();
            repository
            .Setup(x => x.ToKey(obj.Record1.Urn))
            .Returns(obj.Record1.Key)
            .Verifiable();

            obj.Verify(repository.Object);

            repository.VerifyAll();
        }
 private PostalAddressFileKey(SerializationInfo info,
                              StreamingContext context)
     : this()
 {
     UniqueDeliveryPointReferenceNumber     = AlphaDecimal.FromString(info.GetString("_urn"));
     UniqueMultipleResidenceReferenceNumber = AlphaDecimal.FromString(info.GetString("_umr"));
 }
        private static object AddToCache(ICacheCollection cache)
        {
            var obj = new object();

            cache.Add(AlphaDecimal.Random(), obj);

            return(obj);
        }
示例#18
0
        AbsoluteUri IRepository <T> .ToUrn(AlphaDecimal key)
        {
            var file = GetFile(key);

            return(null == file
                       ? null
                       : RecordFile.Load(file).ToRecord <T>().Urn);
        }
示例#19
0
        IRecord <T> IRepository <T> .Select(AlphaDecimal key)
        {
            var file = GetFile(key);

            return(null == file
                       ? null
                       : RecordFile.Load(file).ToRecord <T>());
        }
        private static T AddToCacheOfT <T>(ICacheCollection cache)
        {
            var obj = default(T);

            cache.Add(AlphaDecimal.Random(), obj);

            return(obj);
        }
示例#21
0
        bool IRepository <T> .Match(AlphaDecimal key,
                                    EntityTag etag)
        {
            var file = GetFile(key);

            return(null != file &&
                   string.Equals(etag, RecordFile.Load(file).ToRecord <T>().Etag, StringComparison.OrdinalIgnoreCase));
        }
        AbsoluteUri IRepository <T> .ToUrn(AlphaDecimal key)
        {
            var record = ToRecord(Select(key));

            return(null == record
                       ? null
                       : record.Urn);
        }
示例#23
0
        public void op_Extract_FileInfo_DirectoryInfoMissing()
        {
            using (var temp = new TempDirectory())
            {
                var source      = new FileInfo("example.txt.gz");
                var destination = temp.Info.ToDirectory(AlphaDecimal.Random());

                Assert.Throws <DirectoryNotFoundException>(() => GZip.Extract(source, destination));
            }
        }
        public void op_Clear()
        {
            var obj = new MemoryCacheCollection
            {
                { AlphaDecimal.Random(), new object() }
            };

            Assert.Equal(1, obj.Count);
            obj.Clear();
            Assert.Equal(0, obj.Count);
        }
        protected override void OnVerify(IRepository <T> repository)
        {
            if (null == repository)
            {
                throw new ArgumentNullException("repository");
            }

            if (repository.Delete(AlphaDecimal.Random()))
            {
                throw new RepositoryTestException(Resources.Repository_ExpectWhenDoesNotExist_ExceptionMessage.FormatWith("Delete", "false"));
            }
        }
        protected override void OnVerify(IRepository <T> repository)
        {
            if (null == repository)
            {
                throw new ArgumentNullException("repository");
            }

            if (repository.ModifiedSince(AlphaDecimal.Random(), DateTime.MinValue))
            {
                throw new RepositoryTestException(Resources.Repository_ModifiedSince_ReturnsTrue_ExceptionMessage);
            }
        }
示例#27
0
        bool IRepository <T> .ModifiedSince(AlphaDecimal key,
                                            DateTime value)
        {
            var record = Repository.Select(key);

            if (null == record)
            {
                return(false);
            }

            return(record.Modified.HasValue && record.Modified.Value > value);
        }
示例#28
0
        bool IRepository <T> .Delete(AlphaDecimal key)
        {
            var file = GetFile(key);

            if (null == file)
            {
                return(false);
            }

            file.Delete();
            return(true);
        }
示例#29
0
        protected override void OnVerify(IRepository <T> repository)
        {
            if (null == repository)
            {
                throw new ArgumentNullException("repository");
            }

            if (repository.Match(AlphaDecimal.Random(), "\"{0}\"".FormatWith(Guid.NewGuid())))
            {
                throw new RepositoryTestException(Resources.Repository_Match_ReturnsTrue_ExceptionMessage);
            }
        }
示例#30
0
        public void op_Extract_FileInfoMissing_DirectoryInfo()
        {
            using (var temp = new TempDirectory())
            {
                var source = new FileInfo(AlphaDecimal.Random());

                // ReSharper disable AccessToDisposedClosure
                Assert.Throws <FileNotFoundException>(() => GZip.Extract(source, temp.Info));

                // ReSharper restore AccessToDisposedClosure
            }
        }
        public static string RawQueryString(this HttpRequestBase request,
                                            AlphaDecimal? token,
                                            string whence)
        {
            if (!string.IsNullOrEmpty(whence))
            {
                whence = HttpUtility.UrlEncode(whence);
            }

            var buffer = new StringBuilder();
            if (token.HasValue)
            {
                buffer.Append("[{0}]".FormatWith(token.Value));
            }

            var parts = RawQueryStringParts(request);
            if (0 != parts.Length)
            {
                if ("[]" != parts[0])
                {
                    var existing = Token(parts[0]);
                    if (!existing.HasValue)
                    {
                        buffer.AppendFormat(CultureInfo.InvariantCulture, "{0}{1}", 0 == buffer.Length ? string.Empty : "&", parts[0]);
                    }
                }

                for (var i = 1; i < parts.Length; i++)
                {
                    if (!parts[i].StartsWith("whence=", StringComparison.OrdinalIgnoreCase))
                    {
                        buffer.AppendFormat(CultureInfo.InvariantCulture, "{0}{1}", 0 == buffer.Length ? string.Empty : "&", parts[i]);
                    }
                }
            }

            if (!string.IsNullOrEmpty(whence))
            {
                buffer.AppendFormat(CultureInfo.InvariantCulture, "{0}whence={1}", 0 == buffer.Length ? string.Empty : "&", whence);
            }

            return (0 == buffer.Length ? string.Empty : "?") + buffer;
        }
示例#32
0
        public void op_GetTypeCode()
        {
            const TypeCode expected = TypeCode.Int64;

            IConvertible value = new AlphaDecimal();
            var actual = value.GetTypeCode();

            Assert.Equal(expected, actual);
        }
 public static string RawQueryString(this HttpRequestBase request,
                                     AlphaDecimal? token)
 {
     return request.RawQueryString(token, null);
 }
示例#34
0
        public void opImplicit_AlphaDecimal_short()
        {
            const short value = 0;

            var expected = new AlphaDecimal();
            AlphaDecimal actual = value;

            Assert.Equal(expected, actual);
        }
示例#35
0
        public void opImplicit_AlphaDecimal_BigInteger()
        {
            var value = BigInteger.Zero;

            var expected = new AlphaDecimal();
            AlphaDecimal actual = value;

            Assert.Equal(expected, actual);
        }
示例#36
0
        public void opImplicit_AlphaDecimal_GuidEmpty()
        {
            var expected = new AlphaDecimal();
            AlphaDecimal actual = Guid.Empty;

            Assert.Equal(expected, actual);
        }
示例#37
0
        public void opInequality_AlphaDecimal_AlphaDecimal()
        {
            var obj = new AlphaDecimal();
            var comparand = new AlphaDecimal();

            Assert.False(obj != comparand);
        }
示例#38
0
        public void op_GetHashCode()
        {
            var expected = 0.GetHashCode();
            var actual = new AlphaDecimal().GetHashCode();

            Assert.Equal(expected, actual);
        }
示例#39
0
        public void op_ToString()
        {
            const string expected = "0";

            // ReSharper disable SpecifyACultureInStringConversionExplicitly
            var actual = new AlphaDecimal().ToString();

            // ReSharper restore SpecifyACultureInStringConversionExplicitly
            Assert.Equal(expected, actual);
        }
示例#40
0
        public void opEquality_AlphaDecimal_AlphaDecimal()
        {
            var obj = new AlphaDecimal();
            var comparand = new AlphaDecimal();

            Assert.True(obj == comparand);
        }