public void TestLongConstructor() { var peonyId = new PeonyId(72811205743345696); Assert.Equal(0, peonyId.Reserved); Assert.Equal(8679772108, peonyId.Timestamp); Assert.Equal(0, peonyId.Region); Assert.Equal(0, peonyId.Machine); Assert.Equal(32, peonyId.Sequence); Assert.Equal(PeonyId.PeonyIdTimer.PeonyIdEpoch.AddMilliseconds(8679772108), peonyId.CreationTime); Assert.Equal("72811205743345696", peonyId.ToString()); }
public void TestParse() { var peonyId1 = PeonyId.Parse("72811205743345696"); Assert.True(peonyId1.ToLong().Equals(72811205743345696)); Assert.True(peonyId1.ToString() == "72811205743345696"); var peonyId2 = PeonyId.Parse("-9150560831105924097"); Assert.True(peonyId2.ToLong().Equals(-9150560831105924097)); Assert.True(peonyId2.ToString() == "-9150560831105924097"); }
public void TestFullSizeCustomizedArgumentsConstructor() { var peonyId = new PeonyId(1, 8679772108, 5, 256, 1023); Assert.Equal(1, peonyId.Reserved); Assert.Equal(8679772108, peonyId.Timestamp); Assert.Equal(5, peonyId.Region); Assert.Equal(256, peonyId.Machine); Assert.Equal(1023, peonyId.Sequence); Assert.Equal(PeonyId.PeonyIdTimer.PeonyIdEpoch.AddMilliseconds(8679772108), peonyId.CreationTime); Assert.Equal("-9150560831105924097", peonyId.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(PeonyId.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); } PeonyId id; if (!PeonyId.TryParse(this.Request.Query.id.ToString(), out id)) { return(HttpStatusCode.BadRequest); } return(this.Response.AsJson(id)); }