public void EnsureObjectCanBeSerialized_DoesNotThrow_OnValidType(object value) { // Arrange var testProvider = new SessionStateTempDataProvider(); // Act & Assert (Does not throw) testProvider.EnsureObjectCanBeSerialized(value); }
public void Load_ReturnsEmptyDictionary_WhenNoSessionDataIsAvailable() { // Arrange var testProvider = new SessionStateTempDataProvider(); // Act var tempDataDictionary = testProvider.LoadTempData(GetHttpContext()); // Assert Assert.Empty(tempDataDictionary); }
public void Load_ThrowsException_WhenSessionIsNotEnabled() { // Arrange var testProvider = new SessionStateTempDataProvider(); // Act & Assert Assert.Throws <InvalidOperationException>(() => { testProvider.LoadTempData(GetHttpContext(sessionEnabled: false)); }); }
private static IServiceProvider GetServiceProvider() { var httpContext = new DefaultHttpContext(); var serviceCollection = new ServiceCollection(); serviceCollection.AddSingleton <IModelMetadataProvider>(new EmptyModelMetadataProvider()); var tempDataProvider = new SessionStateTempDataProvider(); serviceCollection.AddSingleton <ITempDataDictionary>(new TempDataDictionary(httpContext, tempDataProvider)); return(serviceCollection.BuildServiceProvider()); }
public void Save_ThrowsException_WhenSessionIsNotEnabled() { // Arrange var testProvider = new SessionStateTempDataProvider(); var values = new Dictionary <string, object>(); values.Add("key1", "value1"); // Act & Assert Assert.Throws <InvalidOperationException>(() => { testProvider.SaveTempData(GetHttpContext(sessionEnabled: false), values); }); }
public void EnsureObjectCanBeSerialized_ThrowsException_OnInvalidType(object value, Type type) { // Arrange var testProvider = new SessionStateTempDataProvider(); // Act & Assert var exception = Assert.Throws <InvalidOperationException>(() => { testProvider.EnsureObjectCanBeSerialized(value); }); Assert.Equal($"The '{typeof(SessionStateTempDataProvider).FullName}' cannot serialize " + $"an object of type '{type}' to session state.", exception.Message); }
public void SaveAndLoad_IntCanBeStoredAndLoaded(int expected) { // Arrange var testProvider = new SessionStateTempDataProvider(); var input = new Dictionary <string, object> { { "int", expected } }; var context = GetHttpContext(); // Act testProvider.SaveTempData(context, input); var TempData = testProvider.LoadTempData(context); // Assert var intVal = Assert.IsType <int>(TempData["int"]); Assert.Equal(expected, intVal); }
public void SaveAndLoad_StringCanBeStoredAndLoaded() { // Arrange var testProvider = new SessionStateTempDataProvider(); var input = new Dictionary <string, object> { { "string", "value" } }; var context = GetHttpContext(); // Act testProvider.SaveTempData(context, input); var TempData = testProvider.LoadTempData(context); // Assert var stringVal = Assert.IsType <string>(TempData["string"]); Assert.Equal("value", stringVal); }
public void SaveAndLoad_BoolCanBeStoredAndLoaded(bool value) { // Arrange var testProvider = new SessionStateTempDataProvider(); var input = new Dictionary <string, object> { { "bool", value } }; var context = GetHttpContext(); // Act testProvider.SaveTempData(context, input); var TempData = testProvider.LoadTempData(context); // Assert var boolVal = Assert.IsType <bool>(TempData["bool"]); Assert.Equal(value, boolVal); }
public void SaveAndLoad_EmptyDictionary_RoundTripsAsNull() { // Arrange var testProvider = new SessionStateTempDataProvider(); var input = new Dictionary <string, object> { { "EmptyDictionary", new Dictionary <string, int>() } }; var context = GetHttpContext(); // Act testProvider.SaveTempData(context, input); var TempData = testProvider.LoadTempData(context); // Assert var emptyDictionary = (IDictionary <string, int>)TempData["EmptyDictionary"]; Assert.Null(emptyDictionary); }
public void SaveAndLoad_DateTimeCanBeStoredAndLoaded() { // Arrange var testProvider = new SessionStateTempDataProvider(); var inputDatetime = new DateTime(2010, 12, 12, 1, 2, 3, DateTimeKind.Local); var input = new Dictionary <string, object> { { "DateTime", inputDatetime } }; var context = GetHttpContext(); // Act testProvider.SaveTempData(context, input); var TempData = testProvider.LoadTempData(context); // Assert var datetime = Assert.IsType <DateTime>(TempData["DateTime"]); Assert.Equal(inputDatetime, datetime); }
public void SaveAndLoad_GuidCanBeStoredAndLoaded() { // Arrange var testProvider = new SessionStateTempDataProvider(); var inputGuid = Guid.NewGuid(); var input = new Dictionary <string, object> { { "Guid", inputGuid } }; var context = GetHttpContext(); // Act testProvider.SaveTempData(context, input); var TempData = testProvider.LoadTempData(context); // Assert var guidVal = Assert.IsType <Guid>(TempData["Guid"]); Assert.Equal(inputGuid, guidVal); }
public void SaveAndLoad_LongCanBeSavedAndLoaded(long expected) { // Arrange var key = "LongValue"; var testProvider = new SessionStateTempDataProvider(); var input = new Dictionary <string, object> { { key, expected } }; var context = GetHttpContext(); // Act testProvider.SaveTempData(context, input); var TempData = testProvider.LoadTempData(context); var result = TempData[key]; // Assert var actual = Assert.IsType <long>(result); Assert.Equal(expected, actual); }
public void SaveAndLoad_EnumCanBeSavedAndLoaded() { // Arrange var key = "EnumValue"; var testProvider = new SessionStateTempDataProvider(); var expected = DayOfWeek.Friday; var input = new Dictionary <string, object> { { key, expected } }; var context = GetHttpContext(); // Act testProvider.SaveTempData(context, input); var TempData = testProvider.LoadTempData(context); var result = TempData[key]; // Assert var actual = (DayOfWeek)result; Assert.Equal(expected, actual); }
public void SaveAndLoad_ListCanBeStoredAndLoaded() { // Arrange var testProvider = new SessionStateTempDataProvider(); var input = new Dictionary <string, object> { { "List`string", new List <string> { "one", "two" } } }; var context = GetHttpContext(); // Act testProvider.SaveTempData(context, input); var TempData = testProvider.LoadTempData(context); // Assert var list = (IList <string>)TempData["List`string"]; Assert.Equal(2, list.Count); Assert.Equal("one", list[0]); Assert.Equal("two", list[1]); }
public void SaveAndLoad_DictionaryCanBeStoredAndLoaded() { // Arrange var testProvider = new SessionStateTempDataProvider(); var inputDictionary = new Dictionary <string, string> { { "Hello", "World" }, }; var input = new Dictionary <string, object> { { "Dictionary", inputDictionary } }; var context = GetHttpContext(); // Act testProvider.SaveTempData(context, input); var TempData = testProvider.LoadTempData(context); // Assert var dictionary = Assert.IsType <Dictionary <string, string> >(TempData["Dictionary"]); Assert.Equal("World", dictionary["Hello"]); }
private TempDataDictionaryFactory CreateFactory() { var provider = new SessionStateTempDataProvider(); return(new TempDataDictionaryFactory(provider)); }