public IEnumerator RemoveAndAddPhysicsMaterialToAnotherBrushMaterial_MaterialStillRegistered() { using (ChiselBrushMaterial newBrushMaterial1 = new ChiselBrushMaterial(), newBrushMaterial2 = new ChiselBrushMaterial()) { var newPhysicsMaterial1 = new PhysicMaterial(); var newPhysicsMaterial2 = new PhysicMaterial(); newBrushMaterial1.PhysicsMaterial = newPhysicsMaterial1; newBrushMaterial2.PhysicsMaterial = newPhysicsMaterial2; yield return(null); ChiselBrushMaterialManager.Update(); Assert.AreEqual(newPhysicsMaterial1, ChiselBrushMaterialManager.GetPhysicsMaterialByInstanceID(newPhysicsMaterial1.GetInstanceID(), false)); Assert.AreEqual(newPhysicsMaterial2, ChiselBrushMaterialManager.GetPhysicsMaterialByInstanceID(newPhysicsMaterial2.GetInstanceID(), false)); Assert.AreEqual(1, ChiselBrushMaterialManager.GetPhysicsMaterialRefCountByInstanceID(newPhysicsMaterial1.GetInstanceID())); Assert.AreEqual(1, ChiselBrushMaterialManager.GetPhysicsMaterialRefCountByInstanceID(newPhysicsMaterial2.GetInstanceID())); newBrushMaterial1.PhysicsMaterial = newPhysicsMaterial2; newBrushMaterial2.PhysicsMaterial = newPhysicsMaterial1; yield return(null); ChiselBrushMaterialManager.Update(); Assert.AreEqual(newPhysicsMaterial1, ChiselBrushMaterialManager.GetPhysicsMaterialByInstanceID(newPhysicsMaterial1.GetInstanceID(), false)); Assert.AreEqual(newPhysicsMaterial2, ChiselBrushMaterialManager.GetPhysicsMaterialByInstanceID(newPhysicsMaterial2.GetInstanceID(), false)); Assert.AreEqual(1, ChiselBrushMaterialManager.GetPhysicsMaterialRefCountByInstanceID(newPhysicsMaterial1.GetInstanceID())); Assert.AreEqual(1, ChiselBrushMaterialManager.GetPhysicsMaterialRefCountByInstanceID(newPhysicsMaterial2.GetInstanceID())); UnityEngine.Object.DestroyImmediate(newPhysicsMaterial1); UnityEngine.Object.DestroyImmediate(newPhysicsMaterial2); } }
public IEnumerator CreateBrushMaterialWithPhysicMaterial_ChangePhysicMaterial_ManagerOnlyKnowsNewMaterial() { using (var newBrushMaterial = new ChiselBrushMaterial()) { var newPhysicsMaterial1 = new PhysicMaterial(); var newPhysicsMaterial2 = new PhysicMaterial(); newBrushMaterial.PhysicsMaterial = newPhysicsMaterial1; yield return(null); var foundPhysicsMaterial = ChiselBrushMaterialManager.GetPhysicsMaterialByInstanceID(newPhysicsMaterial2.GetInstanceID(), false); Assert.AreNotEqual(newPhysicsMaterial1, newPhysicsMaterial2); Assert.AreEqual(newPhysicsMaterial1, ChiselBrushMaterialManager.GetPhysicsMaterialByInstanceID(newPhysicsMaterial1.GetInstanceID(), false)); Assert.AreEqual(1, ChiselBrushMaterialManager.GetPhysicsMaterialRefCountByInstanceID(newPhysicsMaterial1.GetInstanceID())); LogAssert.Expect(LogType.Error, new Regex("Could not find")); Assert.IsNull(foundPhysicsMaterial); newBrushMaterial.PhysicsMaterial = newPhysicsMaterial2; yield return(null); ChiselBrushMaterialManager.Update(); LogAssert.Expect(LogType.Error, new Regex("Could not find")); Assert.IsNull(ChiselBrushMaterialManager.GetPhysicsMaterialByInstanceID(newPhysicsMaterial1.GetInstanceID(), false)); Assert.AreEqual(newPhysicsMaterial2, ChiselBrushMaterialManager.GetPhysicsMaterialByInstanceID(newPhysicsMaterial2.GetInstanceID(), false)); Assert.AreEqual(1, ChiselBrushMaterialManager.GetPhysicsMaterialRefCountByInstanceID(newPhysicsMaterial2.GetInstanceID())); UnityEngine.Object.DestroyImmediate(newPhysicsMaterial1); UnityEngine.Object.DestroyImmediate(newPhysicsMaterial2); } }
public IEnumerator RemoveAndAddRenderMaterialToAnotherBrushMaterial_MaterialStillRegistered() { using (ChiselBrushMaterial newBrushMaterial1 = ChiselBrushMaterial.CreateInstance(), newBrushMaterial2 = ChiselBrushMaterial.CreateInstance()) { var newRenderMaterial1 = new Material(Shader.Find("Specular")); var newRenderMaterial2 = new Material(Shader.Find("Specular")); newBrushMaterial1.RenderMaterial = newRenderMaterial1; newBrushMaterial2.RenderMaterial = newRenderMaterial2; yield return(null); ChiselBrushMaterialManager.Update(); Assert.AreEqual(newRenderMaterial1, ChiselBrushMaterialManager.GetRenderMaterialByInstanceID(newRenderMaterial1.GetInstanceID(), false)); Assert.AreEqual(newRenderMaterial2, ChiselBrushMaterialManager.GetRenderMaterialByInstanceID(newRenderMaterial2.GetInstanceID(), false)); Assert.AreEqual(1, ChiselBrushMaterialManager.GetRenderMaterialRefCountByInstanceID(newRenderMaterial1.GetInstanceID())); Assert.AreEqual(1, ChiselBrushMaterialManager.GetRenderMaterialRefCountByInstanceID(newRenderMaterial2.GetInstanceID())); newBrushMaterial1.RenderMaterial = newRenderMaterial2; newBrushMaterial2.RenderMaterial = newRenderMaterial1; yield return(null); ChiselBrushMaterialManager.Update(); Assert.AreEqual(newRenderMaterial1, ChiselBrushMaterialManager.GetRenderMaterialByInstanceID(newRenderMaterial1.GetInstanceID(), false)); Assert.AreEqual(newRenderMaterial2, ChiselBrushMaterialManager.GetRenderMaterialByInstanceID(newRenderMaterial2.GetInstanceID(), false)); Assert.AreEqual(1, ChiselBrushMaterialManager.GetRenderMaterialRefCountByInstanceID(newRenderMaterial1.GetInstanceID())); Assert.AreEqual(1, ChiselBrushMaterialManager.GetRenderMaterialRefCountByInstanceID(newRenderMaterial2.GetInstanceID())); UnityEngine.Object.DestroyImmediate(newRenderMaterial1); UnityEngine.Object.DestroyImmediate(newRenderMaterial2); } }
public IEnumerator CreateBrushMaterial_BrushMaterialIsPartOfManager() { using (var newBrushMaterial = new ChiselBrushMaterial()) { yield return(null); ChiselBrushMaterialManager.Update(); Assert.True(ChiselBrushMaterialManager.IsRegistered(newBrushMaterial)); } }
public IEnumerator CreateBrushMaterial_UnregisterBrushMaterial_BrushMaterialIsNotPartOfManager() { using (var newBrushMaterial = ChiselBrushMaterial.CreateInstance()) { ChiselBrushMaterialManager.Unregister(newBrushMaterial); yield return(null); ChiselBrushMaterialManager.Update(); Assert.False(ChiselBrushMaterialManager.IsRegistered(newBrushMaterial)); } }
public IEnumerator CreateBrushMaterial_Destroy_BrushMaterialIsNotPartOfManager() { using (var newBrushMaterial = new ChiselBrushMaterial()) { yield return(null); ChiselBrushMaterialManager.Update(); newBrushMaterial.Dispose(); yield return(null); ChiselBrushMaterialManager.Update(); Assert.False(ChiselBrushMaterialManager.IsRegistered(newBrushMaterial)); } }
public IEnumerator CreateBrushContainerAsset_Destroy_IsNotPartOfManager() { var newBrushContainerAsset = ScriptableObject.CreateInstance <ChiselBrushContainerAsset>(); yield return(null); ChiselBrushMaterialManager.Update(); UnityEngine.Object.DestroyImmediate(newBrushContainerAsset); yield return(null); ChiselBrushContainerAssetManager.Update(); //Assert.False(ChiselBrushContainerAssetManager.IsInUnregisterQueue(newBrushContainerAsset)); // should already be done Assert.False(ChiselBrushContainerAssetManager.IsRegistered(newBrushContainerAsset)); UnityEngine.Object.DestroyImmediate(newBrushContainerAsset); }
public IEnumerator CreateBrushMaterialWithPhysicMaterial_ManagerKnowsMaterial() { using (var newBrushMaterial = new ChiselBrushMaterial()) { var newPhysicsMaterial = new PhysicMaterial(); newBrushMaterial.PhysicsMaterial = newPhysicsMaterial; yield return(null); ChiselBrushMaterialManager.Update(); Assert.True(ChiselBrushMaterialManager.IsRegistered(newBrushMaterial)); Assert.AreEqual(newPhysicsMaterial, ChiselBrushMaterialManager.GetPhysicsMaterialByInstanceID(newPhysicsMaterial.GetInstanceID(), false)); Assert.AreEqual(1, ChiselBrushMaterialManager.GetPhysicsMaterialRefCountByInstanceID(newPhysicsMaterial.GetInstanceID())); UnityEngine.Object.DestroyImmediate(newPhysicsMaterial); } }
public IEnumerator CreateTwoBrushMaterialsWithSamePhysicsMaterial_RefCountIsTwo() { using (ChiselBrushMaterial newBrushMaterial1 = new ChiselBrushMaterial(), newBrushMaterial2 = new ChiselBrushMaterial()) { var newPhysicsMaterial = new PhysicMaterial(); newBrushMaterial1.PhysicsMaterial = newPhysicsMaterial; newBrushMaterial2.PhysicsMaterial = newPhysicsMaterial; yield return(null); ChiselBrushMaterialManager.Update(); Assert.AreEqual(newPhysicsMaterial, ChiselBrushMaterialManager.GetPhysicsMaterialByInstanceID(newPhysicsMaterial.GetInstanceID(), false)); Assert.AreEqual(2, ChiselBrushMaterialManager.GetPhysicsMaterialRefCountByInstanceID(newPhysicsMaterial.GetInstanceID())); UnityEngine.Object.DestroyImmediate(newPhysicsMaterial); } }
public IEnumerator CreateBrushMaterialWithPhysicMaterial_DestroyBrushMaterial_ManagerDoesNotKnowMaterial() { using (var newBrushMaterial = new ChiselBrushMaterial()) { var newPhysicsMaterial = new PhysicMaterial(); newBrushMaterial.PhysicsMaterial = newPhysicsMaterial; newBrushMaterial.Dispose(); yield return(null); ChiselBrushMaterialManager.Update(); LogAssert.Expect(LogType.Error, new Regex("Could not find")); Assert.IsNull(ChiselBrushMaterialManager.GetPhysicsMaterialByInstanceID(newPhysicsMaterial.GetInstanceID(), false)); UnityEngine.Object.DestroyImmediate(newPhysicsMaterial); } }
public IEnumerator CreateBrushMaterialWithPhysicMateriall_RetrieveRenderMaterialWithPhysicsMaterialInstanceID_ReturnsNull() { using (var newBrushMaterial = new ChiselBrushMaterial()) { var newPhysicsMaterial = new PhysicMaterial(); newBrushMaterial.PhysicsMaterial = newPhysicsMaterial; yield return(null); ChiselBrushMaterialManager.Update(); Assert.True(ChiselBrushMaterialManager.IsRegistered(newBrushMaterial)); LogAssert.Expect(LogType.Error, new Regex("Trying to use PhysicMaterial with")); Assert.IsNull(ChiselBrushMaterialManager.GetRenderMaterialByInstanceID(newPhysicsMaterial.GetInstanceID(), false)); UnityEngine.Object.DestroyImmediate(newPhysicsMaterial); } }
public IEnumerator CreateBrushMaterialWithRenderMaterial_ManagerKnowsMaterial() { using (var newBrushMaterial = ChiselBrushMaterial.CreateInstance()) { var newRenderMaterial = new Material(Shader.Find("Specular")); newBrushMaterial.RenderMaterial = newRenderMaterial; yield return(null); ChiselBrushMaterialManager.Update(); Assert.True(ChiselBrushMaterialManager.IsRegistered(newBrushMaterial)); Assert.AreEqual(newRenderMaterial, ChiselBrushMaterialManager.GetRenderMaterialByInstanceID(newRenderMaterial.GetInstanceID(), false)); Assert.AreEqual(1, ChiselBrushMaterialManager.GetRenderMaterialRefCountByInstanceID(newRenderMaterial.GetInstanceID())); UnityEngine.Object.DestroyImmediate(newRenderMaterial); } }
public IEnumerator CreateTwoBrushMaterialsWithSameRenderMaterial_RefCountIsTwo() { using (ChiselBrushMaterial newBrushMaterial1 = ChiselBrushMaterial.CreateInstance(), newBrushMaterial2 = ChiselBrushMaterial.CreateInstance()) { var newRenderMaterial = new Material(Shader.Find("Specular")); newBrushMaterial1.RenderMaterial = newRenderMaterial; newBrushMaterial2.RenderMaterial = newRenderMaterial; yield return(null); ChiselBrushMaterialManager.Update(); Assert.AreEqual(newRenderMaterial, ChiselBrushMaterialManager.GetRenderMaterialByInstanceID(newRenderMaterial.GetInstanceID(), false)); Assert.AreEqual(2, ChiselBrushMaterialManager.GetRenderMaterialRefCountByInstanceID(newRenderMaterial.GetInstanceID())); UnityEngine.Object.DestroyImmediate(newRenderMaterial); } }
public IEnumerator CreateTwoBrushMaterialsWithSameRenderMaterial_DestroyBothBrushMaterials_ManagerDoesNotKnowMaterial() { using (ChiselBrushMaterial newBrushMaterial1 = new ChiselBrushMaterial(), newBrushMaterial2 = new ChiselBrushMaterial()) { var newRenderMaterial = new Material(Shader.Find("Specular")); newBrushMaterial1.RenderMaterial = newRenderMaterial; newBrushMaterial2.RenderMaterial = newRenderMaterial; newBrushMaterial1.Dispose(); newBrushMaterial2.Dispose(); yield return(null); ChiselBrushMaterialManager.Update(); LogAssert.Expect(LogType.Error, new Regex("Could not find")); Assert.IsNull(ChiselBrushMaterialManager.GetRenderMaterialByInstanceID(newRenderMaterial.GetInstanceID(), false)); UnityEngine.Object.DestroyImmediate(newRenderMaterial); } }