Skip to content

Instantly share code, notes, and snippets.

View cardinal252's full-sized avatar

Nathanael Mann cardinal252

View GitHub Profile
using Glass.Mapper.Sc;
using Glass.Mapper.Sc.Pipelines.Response;
using XXX.Common.IoC;
using XXX.Core.Sc.Abstractions.Context;
using Sitecore.Mvc.Pipelines.Response.GetModel;
namespace XXX.Web
{
public class LanguageAgnosticGetModelFromView : GetModelFromView
{
@cardinal252
cardinal252 / LazyString
Last active August 10, 2016 18:21
Basic LazyString to help with Glass codegen + usage
public class GlassLazy<T> : Lazy<T>
{
public GlassLazy(Func<object> lazy) : base(() => (T)lazy())
{
}
public override string ToString()
{
return Value.ToString();
}
@cardinal252
cardinal252 / gist:43e3eef5d472ce1c68e5
Last active November 10, 2015 10:19
Glass Context Provider vs Direct Context
using System;
using System.Diagnostics;
using xxx.App_Start;
using Glass.Mapper.Sc;
using Xunit;
namespace xxx.UnitTests
{
public class GlassContextTests
{
@cardinal252
cardinal252 / gist:b1b0119745d3d8efd65b
Last active October 13, 2015 13:05
Using Glass Mapper to get out Children Of Type
using System;
using System.Collections.Generic;
using System.Linq;
using Glass.Mapper.Sc.Configuration;
using Glass.Mapper.Sc.Configuration.Attributes;
using NUnit.Framework;
using Sitecore.Configuration;
using Sitecore.Data;
using Sitecore.Data.Items;
using Sitecore.Globalization;
@cardinal252
cardinal252 / gist:d485fd9fb69585dc5525
Created September 16, 2015 15:49
Using Typed GlassControllers to provide DataSource
public class MyTypedController : GlassController<IContentItem>
{
public ActionResult DisplayControl()
{
return View(DataSource); // returns the view using the DataSource as the model of type IContentItem
}
}
public interface IContentItem
{
@cardinal252
cardinal252 / gist:7b5ef23dca7902088dcd
Last active September 26, 2017 14:38
Mocking the Context on GlassController<T>
[TestFixture] // using NSubstitute, NUnit and Fluent Assertions
public class TypedGlassControllerTests
{
[Test]
public void GlassController_can_set_and_get_context()
{
// Arrange
StubClass classToReturn = new StubClass();
var testHarness = new SingleTypedGlassControllerTestHarness();
testHarness.SitecoreContext.GetCurrentItem<StubClass>().Returns(classToReturn);
@cardinal252
cardinal252 / gist:96df9505353e43cfd1ef
Last active September 26, 2017 14:38
Mocking the DataSource on a GlassController<TContext, TDataSource>
[TestFixture] // using NSubstitute, NUnit and Fluent Assertions
public class GlassControllerContextItemTests
{
[Test]
public void GlassController_can_set_and_get_datasource()
{
// Arrange
ID expectedId = new ID(Guid.NewGuid());
DataSourceStubClass classToReturn = new DataSourceStubClass();
var testHarness = new DifferentTypedGlassControllerTestHarness();
@cardinal252
cardinal252 / gist:9c08f7c637f6591ee118
Last active October 1, 2015 08:37
Mocking the GlassController Layout Item
[TestFixture] // using NSubstitute, NUnit and Fluent Assertions
public class GlassControllerLayoutItemTests
{
[Test]
public void GlassController_can_set_and_get_layout_item_from_datasource()
{
// Arrange
ID expectedId = new ID(Guid.NewGuid());
StubClass classToReturn = new StubClass();
var testHarness = new GlassControllerTestHarness();
@cardinal252
cardinal252 / gist:00f2d89eee11ad156245
Last active September 16, 2015 15:38
Mocking the Request in GlassController
[TestFixture]
public class GlassControllerHttpContextTests
{
[Test]
public void GlassController_can_get_query_string_from_http_context_mock()
{
// Arrange
var testHarness = new GlassControllerTestHarness();
NameValueCollection nvc = new NameValueCollection();
nvc.Add("fred", "flintstone");
@cardinal252
cardinal252 / gist:8c8496721a5c30f61453
Last active October 1, 2015 08:38
Mocking the GlassController context
[TestFixture] // using NSubstitute, NUnit and Fluent Assertions
public class GlassControllerContextItemTests
{
[Test]
public void GlassController_can_set_and_get_context()
{
// Arrange
StubClass classToReturn = new StubClass();
var testHarness = new GlassControllerTestHarness();
testHarness.SitecoreContext.GetCurrentItem<StubClass>().Returns(classToReturn);