using NUnit.Framework;
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEditor.Build.Pipeline.Interfaces;
using UnityEngine;
namespace UnityEditor.Build.Pipeline.Tests
{
class MyContextObjectClass : IContextObject
{
}
interface ITestInterfaceWithContextDerivation : IContextObject {}
class TestITestInterfaceWithContextDerivationImplementation : ITestInterfaceWithContextDerivation
{}
///
/// BuildContextTests
///
public class BuildContextTests
{
BuildContext m_Ctx;
///
/// Setup
///
[SetUp]
public void Setup()
{
m_Ctx = new BuildContext();
}
///
/// SetContextObject_WhenTypeDoesNotExist_AddsContextObject
///
[Test]
public void SetContextObject_WhenTypeDoesNotExist_AddsContextObject()
{
m_Ctx.SetContextObject(new MyContextObjectClass());
Assert.NotNull(m_Ctx.GetContextObject());
}
///
/// SetContextObject_WhenTypeHasInterfaceAssignableToContextObject_InterfaceAndObjectTypeUsedAsKey
///
[Test]
public void SetContextObject_WhenTypeHasInterfaceAssignableToContextObject_InterfaceAndObjectTypeUsedAsKey()
{
m_Ctx.SetContextObject(new TestITestInterfaceWithContextDerivationImplementation());
Assert.NotNull(m_Ctx.GetContextObject());
Assert.NotNull(m_Ctx.GetContextObject());
}
///
/// GetContextObject_WhenTypeDoesNotExist_Throws
///
[Test]
public void GetContextObject_WhenTypeDoesNotExist_Throws()
{
Assert.Throws(typeof(Exception), () => m_Ctx.GetContextObject());
}
}
}