public void GetOrCreateIfNotDefault_Int_DefaultValueThenNonDefault() { const string key = "test"; ObjectTreeAssert.AreEqual(0, distributedCache.GetOrCreateIfNotDefault <int>(key, (options) => 0)); ObjectTreeAssert.AreEqual(2, distributedCache.GetOrCreateIfNotDefault <int>(key, (options) => 2)); }
public async Task GetKeysAsync_Sample() { var requestUri = new Uri("users/test/keys", UriKind.Relative); var json = TestFileProvider.ReadText("keys.json"); clientContext.MockHttpMessageHandler.SetResponse(requestUri, json); var keys = await client.GetKeysAsync("test"); Assert.IsNotNull(keys); var expected = new[] { new KeyResult { Id = 19, Key = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6jjVtyI0CgyiGkmwAbjZgMU2LXThTlgUp7EFEme0KM8mPsD6eiHk330UyXrFIu9+IAFjl3lj8/PJ30NUUnf26Zv7pgeLoxeGwpMXdh4UCIVL1hWAhWxGLbNIUC/KSX83LNCD2EDjxsmv5HeDi4dAXkURn3e14QetjpSUQsYke+h91ANQJ7WVxO7UXqrGB2Mpk/+FkypT1Q+xYSnquAQ4SwnWV16fBBoOyIM+fhKRuv0oOsu6AMaxdPDNA5TTeOwo9J7W1UCo0dgOLTX7GL5qFPdcgsHfwskSRXb2qgixTL4765epGTT6akdWO+7N9O0c2SjshlaE7KN90V3ncA56t ", Url = "https://try.gogs.io/api/v1/user/keys/19", Title = "Plop", CreatedAt = new DateTimeOffset(2015, 02, 09, 15, 58, 42, TimeSpan.FromHours(-5)), }, }; ObjectTreeAssert.AreEqual(expected, keys); }
public void RoundTrip_TimeParty() { var input = new TimeParty { UnixDateTimeSeconds = 2, UnitDateTimeSecondsOrNull = 2, DateTimeUtc = new DateTime(2002, 2, 2, 12, 1, 2, 123, DateTimeKind.Utc), DateTimeUtcOrNull = new DateTime(2002, 2, 2, 12, 1, 2, 123, DateTimeKind.Utc), DateTimeLocal = new DateTime(2002, 2, 2, 12, 1, 2, 123, DateTimeKind.Local), DateTimeLocalOrNull = new DateTime(2002, 2, 2, 12, 1, 2, 123, DateTimeKind.Local), DateTimeUnspecified = new DateTime(2002, 2, 2, 12, 1, 2, 123, DateTimeKind.Unspecified), DateTimeUnspecifiedOrNull = new DateTime(2002, 2, 2, 12, 1, 2, 123, DateTimeKind.Unspecified), DateTimeOffsetUtc = new DateTimeOffset(2002, 2, 2, 12, 1, 2, TimeSpan.FromHours(0)), DateTimeOffsetUtcOrNull = new DateTimeOffset(2002, 2, 2, 12, 1, 2, TimeSpan.FromHours(0)), DateTimeOffsetLocal = new DateTimeOffset(2002, 2, 2, 12, 1, 2, TimeSpan.FromHours(-5)), DateTimeOffsetLocalOrNull = new DateTimeOffset(2002, 2, 2, 12, 1, 2, TimeSpan.FromHours(-5)), }; var serialized = BinaryConvert.Serialize(input); var deserialized = BinaryConvert.Deserialize <TimeParty>(serialized); ObjectTreeAssert.AreEqual(input, deserialized); Assert.Equal(DateTimeKind.Utc, deserialized.DateTimeUtc.Kind); Assert.Equal(DateTimeKind.Utc, deserialized.DateTimeUtcOrNull.Value.Kind); Assert.Equal(DateTimeKind.Local, deserialized.DateTimeLocal.Kind); Assert.Equal(DateTimeKind.Local, deserialized.DateTimeLocalOrNull.Value.Kind); Assert.Equal(DateTimeKind.Unspecified, deserialized.DateTimeUnspecified.Kind); Assert.Equal(DateTimeKind.Unspecified, deserialized.DateTimeUnspecifiedOrNull.Value.Kind); }
public async Task GetOrCreateIfNotDefaultAsync_Int_DefaultValueThenNonDefault() { const string key = "test"; ObjectTreeAssert.AreEqual(0, await distributedCache.GetOrCreateIfNotDefaultAsync <int>(key, (options) => Task.FromResult(0))); ObjectTreeAssert.AreEqual(2, await distributedCache.GetOrCreateIfNotDefaultAsync <int>(key, (options) => Task.FromResult(2))); }
public void RoundTrip_ImmutableIdNamePair_ToIdNamePair() { var input = new ImmutableIdNamePair(2, "hello"); var serialized = BinaryConvert.Serialize(input); var deserialized = BinaryConvert.Deserialize <IdNamePair>(serialized); ObjectTreeAssert.AreEqual(new IdNamePair(), deserialized); }
public async Task GetOrCreateIfNotDefaultAsync_Int_CreatesOnFirstCallThenGetsOnSecondCall() { const string key = "test"; var input = 2; ObjectTreeAssert.AreEqual(input, await distributedCache.GetOrCreateIfNotDefaultAsync <int>(key, (options) => Task.FromResult(input))); ObjectTreeAssert.AreEqual(input, await distributedCache.GetOrCreateIfNotDefaultAsync <int>(key, (options) => Task.FromResult(3))); }
public void GetOrCreateIfNotDefault_Int_CreatesOnFirstCallThenGetsOnSecondCall() { const string key = "test"; var input = 2; ObjectTreeAssert.AreEqual(input, distributedCache.GetOrCreateIfNotDefault <int>(key, (options) => input)); ObjectTreeAssert.AreEqual(input, distributedCache.GetOrCreateIfNotDefault <int>(key, (options) => 3)); }
public void RoundTrip_TimeParty_Defaults() { var input = new TimeParty(); var serialized = BinaryConvert.Serialize(input); var deserialized = BinaryConvert.Deserialize <TimeParty>(serialized); ObjectTreeAssert.AreEqual(input, deserialized); }
public async Task SetAsyncThenGetAsync_AbsoluteExpiration_IdNamePair() { const string key = "test"; var input = new IdNamePair { Id = 2, Name = "hello" }; await distributedCache.SetAsync(key, input, absoluteExpiration : DateTimeOffset.MaxValue); ObjectTreeAssert.AreEqual(input, await distributedCache.GetAsync <IdNamePair>(key)); }
public async Task SetThenGetAsync_AbsoluteExpirationRelativeToNow_IdNamePair() { const string key = "test"; var input = new IdNamePair { Id = 2, Name = "hello" }; await distributedCache.SetAsync(key, input, absoluteExpirationRelativeToNow : TimeSpan.FromDays(2)); ObjectTreeAssert.AreEqual(input, await distributedCache.GetAsync <IdNamePair>(key)); }
public void SetThenGet_AbsoluteExpiration_IdNamePair() { const string key = "test"; var input = new IdNamePair { Id = 2, Name = "hello" }; distributedCache.Set(key, input, absoluteExpiration: DateTimeOffset.MaxValue); ObjectTreeAssert.AreEqual(input, distributedCache.Get <IdNamePair>(key)); }
public void SetThenGet_IdNamePair() { const string key = "test"; var input = new IdNamePair { Id = 2, Name = "hello" }; distributedCache.Set(key, input); ObjectTreeAssert.AreEqual(input, distributedCache.Get <IdNamePair>(key)); }
public async Task SetAsyncThenGetAsync_IdNamePair() { const string key = "test"; var input = new IdNamePair { Id = 2, Name = "hello" }; await distributedCache.SetAsync(key, input); ObjectTreeAssert.AreEqual(input, await distributedCache.GetAsync <IdNamePair>(key)); }
public void RoundTrip_StringComparisonMetadata() { var input = new StringComparisonMetadata { StringComparisonId = (int)StringComparison.OrdinalIgnoreCase, }; var serialized = BinaryConvert.Serialize(input); var deserialized = BinaryConvert.Deserialize <StringComparisonMetadata>(serialized); ObjectTreeAssert.AreEqual(input, deserialized); }
public void GetOrCreate_IdNamePair_AbsoluteExpiration_CreatesThenGets() { const string key = "test"; var input = new IdNamePair { Id = 2, Name = "hello" }; ObjectTreeAssert.AreEqual(input, memoryCache.GetOrCreate <IdNamePair>(key, () => input, absoluteExpiration: DateTimeOffset.MaxValue)); ObjectTreeAssert.AreEqual(input, memoryCache.GetOrCreate <IdNamePair>(key, () => new IdNamePair { Id = 3, Name = "world" }, absoluteExpiration: DateTimeOffset.MaxValue)); }
public async Task GetOrCreateAsync_IdNamePair_AbsoluteExpiration_CreatesThenGets() { const string key = "test"; var input = new IdNamePair { Id = 2, Name = "hello" }; ObjectTreeAssert.AreEqual(input, await memoryCache.GetOrCreateAsync <IdNamePair>(key, () => Task.FromResult(input), absoluteExpiration: DateTimeOffset.MaxValue)); ObjectTreeAssert.AreEqual(input, await memoryCache.GetOrCreateAsync <IdNamePair>(key, () => Task.FromResult(new IdNamePair { Id = 3, Name = "world" }), absoluteExpiration: DateTimeOffset.MaxValue)); }
public void RoundTrip_IdNamePair() { var input = new IdNamePair { Id = 2, Name = "hello", }; var serialized = BinaryConvert.Serialize(input); var deserialized = BinaryConvert.Deserialize <IdNamePair>(serialized); ObjectTreeAssert.AreEqual(input, deserialized); }
public void GetOrCreate_IdNamePair_AbsoluteExpirationRelativeToNow_CreatesThenGets() { const string key = "test"; var input = new IdNamePair { Id = 2, Name = "hello" }; ObjectTreeAssert.AreEqual(input, memoryCache.GetOrCreate <IdNamePair>(key, () => input, absoluteExpirationRelativeToNow: TimeSpan.FromDays(2))); ObjectTreeAssert.AreEqual(input, memoryCache.GetOrCreate <IdNamePair>(key, () => new IdNamePair { Id = 3, Name = "world" }, absoluteExpirationRelativeToNow: TimeSpan.FromDays(2))); }
public async Task GetOrCreateAsync_IdNamePair_AbsoluteExpirationRelativeToNow_CreatesThenGets() { const string key = "test"; var input = new IdNamePair { Id = 2, Name = "hello" }; ObjectTreeAssert.AreEqual(input, await memoryCache.GetOrCreateAsync <IdNamePair>(key, () => Task.FromResult(input), absoluteExpirationRelativeToNow: TimeSpan.FromDays(2))); ObjectTreeAssert.AreEqual(input, await memoryCache.GetOrCreateAsync <IdNamePair>(key, () => Task.FromResult(new IdNamePair { Id = 3, Name = "world" }), absoluteExpirationRelativeToNow: TimeSpan.FromDays(2))); }
public async Task GetOrCreateIfNotDefaultAsync_IdNamePair_DoesNotCallFactoryIfAlreadyExists() { const string key = "test"; var input = new IdNamePair { Id = 2, Name = "hello" }; await distributedCache.SetAsync(key, input); ObjectTreeAssert.AreEqual(input, await distributedCache.GetOrCreateIfNotDefaultAsync <IdNamePair>(key, new Func <DistributedCacheEntryOptions, Task <IdNamePair> >((options) => throw new Exception("Test")))); ObjectTreeAssert.AreEqual(input, await distributedCache.GetOrCreateIfNotDefaultAsync <IdNamePair>(key, new Func <Task <IdNamePair> >(() => throw new Exception("Test2")), absoluteExpirationRelativeToNow: TimeSpan.FromDays(2))); ObjectTreeAssert.AreEqual(input, await distributedCache.GetOrCreateIfNotDefaultAsync <IdNamePair>(key, new Func <Task <IdNamePair> >(() => throw new Exception("Test3")), absoluteExpiration: DateTimeOffset.MaxValue)); }
public void RoundTrip_NoIdGetterIdNamePair_ToIdNamePair() { var input = new NoIdGetterIdNamePair { Id = 2, Name = "hello", }; var serialized = BinaryConvert.Serialize(input); var deserialized = BinaryConvert.Deserialize <IdNamePair>(serialized); var expected = new IdNamePair { Name = "hello" }; ObjectTreeAssert.AreEqual(expected, deserialized); }
public void RoundTrip_CustomJsonAttributeClass() { var input = new CustomJsonAttributeClass { Id = 1, AlternateId = 2, Ignored = 3, Name = "4", }; var serialized = BinaryConvert.Serialize(input); var deserialized = BinaryConvert.Deserialize <CustomJsonAttributeClass>(serialized); ObjectTreeAssert.AreEqual(input, deserialized); }
public void RoundTrip_CustomDataContractClass() { var input = new CustomDataContractClass { Id = 1, AlternateId = 2, NotMember = 3, Ignored = 4, Name = "5", }; var serialized = BinaryConvert.Serialize(input); var deserialized = BinaryConvert.Deserialize <CustomDataContractClass>(serialized); ObjectTreeAssert.AreEqual(input, deserialized); }
public void GetOrCreateIfNotDefault_IdNamePair_CreatesOnFirstCallThenGetsOnSecondCall() { const string key = "test"; var input = new IdNamePair { Id = 2, Name = "hello" }; ObjectTreeAssert.AreEqual(input, distributedCache.GetOrCreateIfNotDefault <IdNamePair>(key, (options) => input)); ObjectTreeAssert.AreEqual(input, distributedCache.GetOrCreateIfNotDefault <IdNamePair>(key, (options) => new IdNamePair { Id = 3, Name = "world" })); ObjectTreeAssert.AreEqual(input, distributedCache.GetOrCreateIfNotDefault <IdNamePair>(key, () => new IdNamePair { Id = 3, Name = "world" }, absoluteExpirationRelativeToNow: TimeSpan.FromDays(2))); ObjectTreeAssert.AreEqual(input, distributedCache.GetOrCreateIfNotDefault <IdNamePair>(key, () => new IdNamePair { Id = 3, Name = "world" }, absoluteExpiration: DateTimeOffset.MaxValue)); }
public async Task GetOrCreateIfNotDefaultAsync_IdNamePair_CreatesOnFirstCallThenGetsOnSecondCall() { const string key = "test"; var input = new IdNamePair { Id = 2, Name = "hello" }; ObjectTreeAssert.AreEqual(input, await distributedCache.GetOrCreateIfNotDefaultAsync <IdNamePair>(key, (options) => Task.FromResult(input))); ObjectTreeAssert.AreEqual(input, await distributedCache.GetOrCreateIfNotDefaultAsync <IdNamePair>(key, (options) => Task.FromResult(new IdNamePair { Id = 3, Name = "world" }))); ObjectTreeAssert.AreEqual(input, await distributedCache.GetOrCreateIfNotDefaultAsync <IdNamePair>(key, () => Task.FromResult(new IdNamePair { Id = 3, Name = "world" }), TimeSpan.FromDays(2))); ObjectTreeAssert.AreEqual(input, await distributedCache.GetOrCreateIfNotDefaultAsync <IdNamePair>(key, () => Task.FromResult(new IdNamePair { Id = 3, Name = "world" }), DateTimeOffset.MaxValue)); }
public void RoundTrip_ListOfObjects() { TimeParty[] input = new TimeParty[] { new TimeParty { UnixDateTimeSeconds = 2, DateTimeUtc = new DateTime(2002, 2, 2, 12, 1, 2, 123, DateTimeKind.Utc), DateTimeLocal = new DateTime(2002, 2, 2, 12, 1, 2, 123, DateTimeKind.Local), DateTimeUnspecified = new DateTime(2002, 2, 2, 12, 1, 2, 123, DateTimeKind.Unspecified), DateTimeOffsetUtc = new DateTimeOffset(2002, 2, 2, 12, 1, 2, TimeSpan.FromHours(0)), DateTimeOffsetLocal = new DateTimeOffset(2002, 2, 2, 12, 1, 2, TimeSpan.FromHours(-5)), }, new TimeParty(), }; var serialized = BinaryConvert.Serialize(input); var deserialized = BinaryConvert.Deserialize <List <TimeParty> >(serialized); ObjectTreeAssert.AreEqual(input, deserialized); }
public async Task SearchAsync_Sample() { var requestUri = new Uri("users/search?q=temp", UriKind.Relative); var json = TestFileProvider.ReadText("usersDataWrapper.json"); clientContext.MockHttpMessageHandler.SetResponse(requestUri, json); var users = await client.SearchAsync("temp"); Assert.IsNotNull(users); var expected = new[] { new UserResult { Id = 9075, Username = "******", FullName = "", Email = "*****@*****.**", AvatarUrl = "https://secure.gravatar.com/avatar/57d9c9c2bcc73252855f785e19bc02c1" }, new UserResult { Id = 9417, Username = "******", FullName = "", Email = "*****@*****.**", AvatarUrl = "https://secure.gravatar.com/avatar/e87463cc49c6a58e139b75adfb27d052" }, new UserResult { Id = 10236, Username = "******", FullName = "", Email = "*****@*****.**", AvatarUrl = "https://secure.gravatar.com/avatar/ca890e0da264bb85254a787bebd8da7e" }, }; ObjectTreeAssert.AreEqual(expected, users); }
public async Task GetAsync_Sample() { var requestUri = new Uri("users/test", UriKind.Relative); var json = TestFileProvider.ReadText("user.json"); clientContext.MockHttpMessageHandler.SetResponse(requestUri, json); var user = await client.GetAsync("test"); Assert.IsNotNull(user); var expected = new UserResult { Id = 7, Username = "******", FullName = "", Email = "", AvatarUrl = "https://secure.gravatar.com/avatar/bb11777b425ba7229a182f446783203d" }; ObjectTreeAssert.AreEqual(expected, user); }
public async Task SerializeAndDeserialize() { var responseMessage = new HttpResponseMessage(HttpStatusCode.OK); responseMessage.Headers.ETag = new EntityTagHeaderValue("\"abcdef==\""); responseMessage.Headers.TryAddWithoutValidation("Link", @"<https://3.basecampapi.com/999999999/buckets/2085958496/messages.json?page=4>; rel=""next"""); responseMessage.Content = new StringContent("This is the content"); var entry = await ResponseMessageCacheEntry.CreateOrNullAsync(responseMessage); Assert.IsNotNull(entry); var serialized = JsonConvert.SerializeObject(entry); var deserialized = JsonConvert.DeserializeObject <ResponseMessageCacheEntry>(serialized); ObjectTreeAssert.AreEqual(entry, deserialized, new ObjectTreeNodeFilter { ExcludedPropertyNames = new[] { nameof(ResponseMessageCacheEntry.Headers), nameof(ResponseMessageCacheEntry.ContentHeaders) }, }); CollectionAssert.AreEquivalent(entry.Headers, deserialized.Headers); CollectionAssert.AreEquivalent(entry.ContentHeaders, deserialized.ContentHeaders); }
public void RoundTrip_DictionaryOfObjects() { Dictionary <string, TimeParty> input = new Dictionary <string, TimeParty> { ["one"] = new TimeParty(), ["two"] = new TimeParty { UnixDateTimeSeconds = 2, DateTimeUtc = new DateTime(2002, 2, 2, 12, 1, 2, 123, DateTimeKind.Utc), DateTimeLocal = new DateTime(2002, 2, 2, 12, 1, 2, 123, DateTimeKind.Local), DateTimeUnspecified = new DateTime(2002, 2, 2, 12, 1, 2, 123, DateTimeKind.Unspecified), DateTimeOffsetUtc = new DateTimeOffset(2002, 2, 2, 12, 1, 2, TimeSpan.FromHours(0)), DateTimeOffsetLocal = new DateTimeOffset(2002, 2, 2, 12, 1, 2, TimeSpan.FromHours(-5)), }, ["three"] = null }; var serialized = BinaryConvert.Serialize(input); var deserialized = BinaryConvert.Deserialize <Dictionary <string, TimeParty> >(serialized); Assert.Equal(input.Keys.OrderBy(x => x), deserialized.Keys.OrderBy(x => x)); ObjectTreeAssert.AreEqual(input["one"], deserialized["one"]); ObjectTreeAssert.AreEqual(input["two"], deserialized["two"]); Assert.Null(deserialized["three"]); }