public void GlassController_null_datasource()
        {
            // Arrange
            var testHarness = new DifferentTypedGlassControllerTestHarness();
            testHarness.RenderingContextWrapper.GetDataSource().Returns(null as string);

            // Act
            var result = testHarness.GlassController.DataSource;

            // Assert
            result.Should().BeNull();
            testHarness.SitecoreContext.Received(0).GetItem<DataSourceStubClass>(Arg.Any<string>());
        }
        public void GlassController_null_datasource()
        {
            // Arrange
            var testHarness = new DifferentTypedGlassControllerTestHarness();

            testHarness.RenderingContextWrapper.GetDataSource().Returns(null as string);

            // Act
            var result = testHarness.GlassController.DataSource;

            // Assert
            result.Should().BeNull();
            testHarness.SitecoreContext.Received(0).GetItem <DataSourceStubClass>(Arg.Any <string>());
        }
        public void GlassController_null_datasource()
        {
            // Arrange
            var testHarness = new DifferentTypedGlassControllerTestHarness();

            testHarness.MvcContext.DataSourceItem.Returns((Item)null);

            // Act
            var result = testHarness.GlassController.GetDataSource <DataSourceStubClass>();

            // Assert
            result.Should().BeNull();
            testHarness.MvcContext.Received(0).GetDataSourceItem <DataSourceStubClass>(Arg.Any <GetKnownOptions>());
        }
        public void GlassController_can_get_query_string_from_http_context_mock()
        {
            // Arrange
            var testHarness         = new DifferentTypedGlassControllerTestHarness();
            NameValueCollection nvc = new NameValueCollection();

            nvc.Add("fred", "flintstone");
            testHarness.HttpContext.Request.QueryString.Returns(nvc);

            // Act
            var result = testHarness.GlassController.HttpContext.Request.QueryString["fred"];

            // Assert
            result.Should().Be("flintstone");
        }
        public void GlassController_can_set_and_get_context()
        {
            // Arrange
            ContextStubClass classToReturn = new ContextStubClass();
            var testHarness = new DifferentTypedGlassControllerTestHarness();

            testHarness.SitecoreContext.GetCurrentItem <ContextStubClass>().Returns(classToReturn);

            // Act
            var result1 = testHarness.GlassController.Context;
            var result2 = testHarness.GlassController.Context;

            // Assert
            result1.Should().Be(classToReturn);
            result2.Should().BeSameAs(result1);
            testHarness.SitecoreContext.Received(1).GetCurrentItem <ContextStubClass>();
        }
        public void GlassController_can_set_and_get_context()
        {
            // Arrange
            ContextStubClass classToReturn = new ContextStubClass();
            var testHarness = new DifferentTypedGlassControllerTestHarness();

            testHarness.MvcContext.GetContextItem <ContextStubClass>(Arg.Any <GetKnownOptions>()).Returns(classToReturn);

            // Act
            var result1 = testHarness.GlassController.GetContext <ContextStubClass>();
            var result2 = testHarness.GlassController.GetContext <ContextStubClass>();

            // Assert
            result1.Should().Be(classToReturn);
            result2.Should().BeSameAs(result1);
            testHarness.MvcContext.Received(2).GetContextItem <ContextStubClass>(Arg.Any <GetKnownOptions>());
        }
        public void GlassController_can_set_and_get_datasource()
        {
            // Arrange
            ID expectedId = new ID(Guid.NewGuid());
            DataSourceStubClass classToReturn = new DataSourceStubClass();
            var testHarness = new DifferentTypedGlassControllerTestHarness();
            testHarness.RenderingContextWrapper.HasDataSource.Returns(true);
            testHarness.RenderingContextWrapper.GetDataSource().Returns(expectedId.ToString());
            testHarness.SitecoreContext.GetItem<DataSourceStubClass>(expectedId.ToString()).Returns(classToReturn);

            // Act
            var result1 = testHarness.GlassController.DataSource;
            var result2 = testHarness.GlassController.DataSource;

            // Assert
            result1.Should().Be(classToReturn);
            result2.Should().BeSameAs(result1);
            testHarness.SitecoreContext.Received(1).GetItem<DataSourceStubClass>(expectedId.ToString());
        }
        public void GlassController_can_set_and_get_datasource()
        {
            // Arrange
            ID expectedId = new ID(Guid.NewGuid());
            DataSourceStubClass classToReturn = new DataSourceStubClass();
            var testHarness = new DifferentTypedGlassControllerTestHarness();

            testHarness.RenderingContextWrapper.HasDataSource.Returns(true);
            testHarness.RenderingContextWrapper.GetDataSource().Returns(expectedId.ToString());
            testHarness.SitecoreContext.GetItem <DataSourceStubClass>(expectedId.ToString()).Returns(classToReturn);

            // Act
            var result1 = testHarness.GlassController.DataSource;
            var result2 = testHarness.GlassController.DataSource;

            // Assert
            result1.Should().Be(classToReturn);
            result2.Should().BeSameAs(result1);
            testHarness.SitecoreContext.Received(1).GetItem <DataSourceStubClass>(expectedId.ToString());
        }
        public void GlassController_can_set_and_get_context()
        {
            // Arrange
            ContextStubClass classToReturn = new ContextStubClass();
            var testHarness = new DifferentTypedGlassControllerTestHarness();
            testHarness.SitecoreContext.GetCurrentItem<ContextStubClass>().Returns(classToReturn);

            // Act
            var result1 = testHarness.GlassController.Context;
            var result2 = testHarness.GlassController.Context;

            // Assert
            result1.Should().Be(classToReturn);
            result2.Should().BeSameAs(result1);
            testHarness.SitecoreContext.Received(1).GetCurrentItem<ContextStubClass>();
        }
        public void GlassController_can_get_query_string_from_http_context_mock()
        {
            // Arrange
            var testHarness = new DifferentTypedGlassControllerTestHarness();
            NameValueCollection nvc = new NameValueCollection();
            nvc.Add("fred", "flintstone");
            testHarness.HttpContext.Request.QueryString.Returns(nvc);

            // Act
            var result = testHarness.GlassController.HttpContext.Request.QueryString["fred"];

            // Assert
            result.Should().Be("flintstone");
        }