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()); } } }