Skip to content

Commit

Permalink
Use fixtures and SetUp/TearDown for some tests.
Browse files Browse the repository at this point in the history
  • Loading branch information
jakobhu committed Apr 5, 2017
1 parent 3930098 commit 2fb8e5d
Show file tree
Hide file tree
Showing 3 changed files with 82 additions and 124 deletions.
68 changes: 34 additions & 34 deletions Assets/Tests/NavMeshSurfaceModifierTests.cs
Expand Up @@ -4,107 +4,107 @@
using NUnit.Framework;
using System.Collections;

[TestFixture]
public class NavMeshSurfaceModifierTests
{
NavMeshSurface surface;
NavMeshModifier modifier;

[SetUp]
public void CreatePlaneWithModifier()
{
var plane = GameObject.CreatePrimitive(PrimitiveType.Plane);
surface = plane.AddComponent<NavMeshSurface>();
modifier = plane.AddComponent<NavMeshModifier>();
}

[TearDown]
public void DestroyPlaneWithModifier()
{
GameObject.DestroyImmediate(modifier.gameObject);
}

[Test]
public void ModifierIgnoreAffectsSelf()
{
var go = GameObject.CreatePrimitive(PrimitiveType.Plane);
var surface = go.AddComponent<NavMeshSurface>();
var modifier = go.AddComponent<NavMeshModifier>();
modifier.ignoreFromBuild = true;

surface.BuildNavMesh();

Assert.IsFalse(NavMeshSurfaceTests.HasNavMeshAtOrigin());
GameObject.DestroyImmediate(go);
}

[Test]
public void ModifierIgnoreAffectsChild()
{
var go = new GameObject();
var surface = go.AddComponent<NavMeshSurface>();
var modifier = go.AddComponent<NavMeshModifier>();
modifier.ignoreFromBuild = true;
modifier.GetComponent<MeshRenderer>().enabled = false;

var plane = GameObject.CreatePrimitive(PrimitiveType.Plane);
plane.transform.SetParent(modifier.transform);
var childPlane = GameObject.CreatePrimitive(PrimitiveType.Plane);
childPlane.transform.SetParent(modifier.transform);

surface.BuildNavMesh();

Assert.IsFalse(NavMeshSurfaceTests.HasNavMeshAtOrigin());
GameObject.DestroyImmediate(go);
GameObject.DestroyImmediate(plane);
GameObject.DestroyImmediate(childPlane);
}

[Test]
public void ModifierIgnoreDoesNotAffectSibling()
{
var plane = GameObject.CreatePrimitive(PrimitiveType.Plane);
var go = new GameObject();
var surface = go.AddComponent<NavMeshSurface>();
var modifier = go.AddComponent<NavMeshModifier>();
modifier.ignoreFromBuild = true;
modifier.GetComponent<MeshRenderer>().enabled = false;

var siblingPlane = GameObject.CreatePrimitive(PrimitiveType.Plane);

surface.BuildNavMesh();

Assert.IsTrue(NavMeshSurfaceTests.HasNavMeshAtOrigin());
GameObject.DestroyImmediate(go);
GameObject.DestroyImmediate(plane);
GameObject.DestroyImmediate(siblingPlane);
}

[Test]
public void ModifierOverrideAreaAffectsSelf()
{
var go = GameObject.CreatePrimitive(PrimitiveType.Plane);
var surface = go.AddComponent<NavMeshSurface>();
var modifier = go.AddComponent<NavMeshModifier>();
modifier.area = 4;
modifier.overrideArea = true;

surface.BuildNavMesh();

var expectedAreaMask = 1 << 4;
Assert.IsTrue(NavMeshSurfaceTests.HasNavMeshAtOrigin(expectedAreaMask));
GameObject.DestroyImmediate(go);
}

[Test]
public void ModifierOverrideAreaAffectsChild()
{
var go = new GameObject();
var surface = go.AddComponent<NavMeshSurface>();
var modifier = go.AddComponent<NavMeshModifier>();
modifier.area = 4;
modifier.overrideArea = true;
modifier.GetComponent<MeshRenderer>().enabled = false;

var plane = GameObject.CreatePrimitive(PrimitiveType.Plane);
plane.transform.SetParent(modifier.transform);
var childPlane = GameObject.CreatePrimitive(PrimitiveType.Plane);
childPlane.transform.SetParent(modifier.transform);

surface.BuildNavMesh();

var expectedAreaMask = 1 << 4;
Assert.IsTrue(NavMeshSurfaceTests.HasNavMeshAtOrigin(expectedAreaMask));
GameObject.DestroyImmediate(go);
GameObject.DestroyImmediate(plane);
GameObject.DestroyImmediate(childPlane);
}

[Test]
public void ModifierOverrideAreaDoesNotAffectSibling()
{
var plane = GameObject.CreatePrimitive(PrimitiveType.Plane);
var go = new GameObject();
var surface = go.AddComponent<NavMeshSurface>();
var modifier = go.AddComponent<NavMeshModifier>();
modifier.area = 4;
modifier.overrideArea = true;
modifier.GetComponent<MeshRenderer>().enabled = false;

var siblingPlane = GameObject.CreatePrimitive(PrimitiveType.Plane);

surface.BuildNavMesh();

var expectedAreaMask = 1;
Assert.IsTrue(NavMeshSurfaceTests.HasNavMeshAtOrigin(expectedAreaMask));
GameObject.DestroyImmediate(go);
GameObject.DestroyImmediate(plane);
GameObject.DestroyImmediate(siblingPlane);
}
}
40 changes: 21 additions & 19 deletions Assets/Tests/NavMeshSurfaceModifierVolumeTests.cs
Expand Up @@ -4,14 +4,31 @@
using NUnit.Framework;
using System.Collections;

[TestFixture]
public class NavMeshSurfaceModifierVolumeTests
{
NavMeshSurface surface;
NavMeshModifierVolume modifier;

[SetUp]
public void CreatePlaneAndModifierVolume()
{
var go = GameObject.CreatePrimitive(PrimitiveType.Plane);
surface = go.AddComponent<NavMeshSurface>();

modifier = new GameObject().AddComponent<NavMeshModifierVolume>();
}

[TearDown]
public void DestroyPlaneAndModifierVolume()
{
GameObject.DestroyImmediate(surface.gameObject);
GameObject.DestroyImmediate(modifier.gameObject);
}

[Test]
public void AreaAffectsNavMeshOverlapping()
{
var go = GameObject.CreatePrimitive(PrimitiveType.Plane);
var surface = go.AddComponent<NavMeshSurface>();
var modifier = go.AddComponent<NavMeshModifierVolume>();
modifier.center = Vector3.zero;
modifier.size = Vector3.one;
modifier.area = 4;
Expand All @@ -20,16 +37,11 @@ public void AreaAffectsNavMeshOverlapping()

var expectedAreaMask = 1 << 4;
Assert.IsTrue(NavMeshSurfaceTests.HasNavMeshAtOrigin(expectedAreaMask));

GameObject.DestroyImmediate(go);
}

[Test]
public void AreaDoesNotAffectsNavMeshWhenNotOverlapping()
{
var go = GameObject.CreatePrimitive(PrimitiveType.Plane);
var surface = go.AddComponent<NavMeshSurface>();
var modifier = go.AddComponent<NavMeshModifierVolume>();
modifier.center = 1.1f * Vector3.right;
modifier.size = Vector3.one;
modifier.area = 4;
Expand All @@ -38,30 +50,20 @@ public void AreaDoesNotAffectsNavMeshWhenNotOverlapping()

var expectedAreaMask = 1;
Assert.IsTrue(NavMeshSurfaceTests.HasNavMeshAtOrigin(expectedAreaMask));

GameObject.DestroyImmediate(go);
}

[Test]
public void BuildUsesOnlyIncludedModifierVolume()
{
var go = GameObject.CreatePrimitive(PrimitiveType.Plane);
var surface = go.AddComponent<NavMeshSurface>();

var modifierGO = new GameObject();
var modifier = modifierGO.AddComponent<NavMeshModifierVolume>();
modifier.center = Vector3.zero;
modifier.size = Vector3.one;
modifier.area = 4;
modifierGO.layer = 7;
modifier.gameObject.layer = 7;

surface.layerMask = ~(1 << 7);
surface.BuildNavMesh();

var expectedAreaMask = 1;
Assert.IsTrue(NavMeshSurfaceTests.HasNavMeshAtOrigin(expectedAreaMask));

GameObject.DestroyImmediate(go);
GameObject.DestroyImmediate(modifierGO);
}
}

0 comments on commit 2fb8e5d

Please sign in to comment.