public void Can_convert() { var sut = new UnixDateTimeJsonConverter(); var actual = sut.CanConvert(typeof(DateTime)); Assert.True(actual); }
public void Cannot_convert() { var sut = new UnixDateTimeJsonConverter(); var actual = sut.CanConvert(typeof(DateTimeOffset)); Assert.False(actual); }
public void Serializes_correctly() { var sut = new UnixDateTimeJsonConverter(); var date = EpochTime; var actual = JsonConvert.SerializeObject(date, sut); Assert.Equal("0", actual); date = DateTime.UtcNow; actual = JsonConvert.SerializeObject(date, sut); Assert.Equal(((long)((date - EpochTime).TotalSeconds)).ToString(), actual); }
public void Deserializes_correctly() { var sut = new UnixDateTimeJsonConverter(); var date = DateTime.UtcNow; var value = ((long)((date - EpochTime).TotalSeconds)).ToString(); var actual = JsonConvert.DeserializeObject <DateTime>(value, sut); Assert.Equal(new DateTime(date.Year, date.Month, date.Day, date.Hour, date.Minute, date.Second, DateTimeKind.Utc), actual); date = EpochTime; actual = JsonConvert.DeserializeObject <DateTime>("0", sut); Assert.Equal(date, actual); }
/// <summary> /// Gets a list of blocks mined on a specific day. /// </summary> /// <param name="dateTime">DateTime that falls /// between 00:00 UTC and 23:59 UTC of the desired day.</param> /// <returns>A list of SimpleBlock objects</returns> /// <exception cref="ServerApiException">If the server returns an error</exception> public async Task <ReadOnlyCollection <SimpleBlock> > GetBlocksAsync(DateTime dateTime) { if (dateTime < UnixDateTimeJsonConverter.GenesisBlockDate) { throw new ArgumentOutOfRangeException(nameof(dateTime), "Date must be greater than or equal to the genesis block creation date (2009-01-03T18:15:05+00:00)"); } if (dateTime.ToUniversalTime() > DateTime.UtcNow) { throw new ArgumentOutOfRangeException(nameof(dateTime), "Date must be in the past"); } double unixTimestap = UnixDateTimeJsonConverter.DateTimeToUnixSeconds(dateTime); string unixMillisstring = (unixTimestap * 1000).ToString(); //TODO? return(await this.GetBlocksAsync(unixMillisstring)); }