Ejemplo n.º 1
0
        public void EnsureObjectCanBeSerialized_DoesNotThrow_OnValidType(object value)
        {
            // Arrange
            var testProvider = new SessionStateTempDataProvider();

            // Act & Assert (Does not throw)
            testProvider.EnsureObjectCanBeSerialized(value);
        }
Ejemplo n.º 2
0
        public void Load_ReturnsEmptyDictionary_WhenNoSessionDataIsAvailable()
        {
            // Arrange
            var testProvider = new SessionStateTempDataProvider();

            // Act
            var tempDataDictionary = testProvider.LoadTempData(GetHttpContext());

            // Assert
            Assert.Empty(tempDataDictionary);
        }
Ejemplo n.º 3
0
        public void Load_ThrowsException_WhenSessionIsNotEnabled()
        {
            // Arrange
            var testProvider = new SessionStateTempDataProvider();

            // Act & Assert
            Assert.Throws <InvalidOperationException>(() =>
            {
                testProvider.LoadTempData(GetHttpContext(sessionEnabled: false));
            });
        }
Ejemplo n.º 4
0
        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());
        }
Ejemplo n.º 5
0
        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);
            });
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
        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);
        }
Ejemplo n.º 9
0
        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);
        }
Ejemplo n.º 10
0
        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);
        }
Ejemplo n.º 11
0
        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);
        }
Ejemplo n.º 12
0
        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);
        }
Ejemplo n.º 13
0
        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);
        }
Ejemplo n.º 14
0
        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);
        }
Ejemplo n.º 15
0
        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]);
        }
Ejemplo n.º 16
0
        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));
        }