public void TestLongConstructor() { var catkinId = new CatkinId(36671638107855309); Assert.Equal(0, catkinId.Reserved); Assert.Equal(8743199851, catkinId.Timestamp); Assert.Equal(0, catkinId.Region); Assert.Equal(0, catkinId.Machine); Assert.Equal(6605, catkinId.Sequence); Assert.Equal(CatkinId.CatkinIdTimer.CatkinIdEpoch.AddMilliseconds(8743199851), catkinId.CreationTime); Assert.Equal("36671638107855309", catkinId.ToString()); }
public void TestParse() { var catkinId1 = CatkinId.Parse("36671638107855309"); Assert.True(catkinId1.ToLong().Equals(36671638107855309)); Assert.True(catkinId1.ToString() == "36671638107855309"); var catkinId2 = CatkinId.Parse("-9186966433981537281"); Assert.True(catkinId2.ToLong().Equals(-9186966433981537281)); Assert.True(catkinId2.ToString() == "-9186966433981537281"); }
public void TestFullSizeCustomizedArgumentsConstructor() { var catkinId = new CatkinId(1, 8679772108, 5, 31, 1023); Assert.Equal(1, catkinId.Reserved); Assert.Equal(8679772108, catkinId.Timestamp); Assert.Equal(5, catkinId.Region); Assert.Equal(31, catkinId.Machine); Assert.Equal(1023, catkinId.Sequence); Assert.Equal(CatkinId.CatkinIdTimer.CatkinIdEpoch.AddMilliseconds(8679772108), catkinId.CreationTime); Assert.Equal("-9186966433981537281", catkinId.ToString()); }
public void TestFullSizeDefaultArgumentsConstructor() { var catkinId = new CatkinId(0, 219902320000, 5, 31, 1023); Assert.Equal(0, catkinId.Reserved); Assert.Equal(219902320000, catkinId.Timestamp); Assert.Equal(5, catkinId.Region); Assert.Equal(31, catkinId.Machine); Assert.Equal(1023, catkinId.Sequence); Assert.Equal(CatkinId.CatkinIdTimer.CatkinIdEpoch.AddMilliseconds(219902320000), catkinId.CreationTime); Assert.Equal("922337180386845695", catkinId.ToString()); }
private dynamic GenerateId(dynamic parameters) { byte reserved = 0; long timestamp = -1; byte region = 0; ushort machine = 0; int sequence = -1; if (this.Request.Query.reserved.HasValue) { if (!byte.TryParse(this.Request.Query.reserved.Value.ToString(), out reserved)) { return(HttpStatusCode.BadRequest); } } if (this.Request.Query.timestamp.HasValue) { if (!long.TryParse(this.Request.Query.timestamp.Value.ToString(), out timestamp) || timestamp < 0) { return(HttpStatusCode.BadRequest); } } if (this.Request.Query.region.HasValue) { if (!byte.TryParse(this.Request.Query.region.Value.ToString(), out region)) { return(HttpStatusCode.BadRequest); } } if (this.Request.Query.machine.HasValue) { if (!ushort.TryParse(this.Request.Query.machine.Value.ToString(), out machine)) { return(HttpStatusCode.BadRequest); } } if (this.Request.Query.sequence.HasValue) { if (!int.TryParse(this.Request.Query.sequence.Value.ToString(), out sequence) || sequence < 0) { return(HttpStatusCode.BadRequest); } } return(CatkinId.GenerateNewId( reserved: reserved, timestamp: (timestamp > 0 ? (long?)timestamp : null), region: region, machine: machine, sequence: (sequence > 0 ? (int?)sequence : null)).ToLong().ToString()); }
private dynamic DecodeId(dynamic parameters) { if (!this.Request.Query.id.HasValue) { return(HttpStatusCode.BadRequest); } CatkinId id; if (!CatkinId.TryParse(this.Request.Query.id.ToString(), out id)) { return(HttpStatusCode.BadRequest); } return(this.Response.AsJson(id)); }