void ThreadSetup() { assetsToReplace = new List <string> (); GameObject[] selectedlist = Selection.gameObjects; threadmeshlist = new List <MeshFilter> (); for (int i = 0; i < selectedlist.Length; i++) { MeshFilter[] meshFilter = selectedlist [i].GetComponentsInChildren <MeshFilter> (); if (meshFilter.Length > 0) { for (int m = 0; m < meshFilter.Length; m++) { threadmeshlist.Add(meshFilter [m]); } } } progressstatus = "Converting.."; threadIndex = 0; replacing = false; threadCount = threadmeshlist.Count; convertThreads = new ThreadInstance[threadCount]; for (int i = 0; i < convertThreads.Length; i++) { convertThreads [i] = new ThreadInstance(); convertThreads [i].meshfillter = threadmeshlist [i]; convertThreads [i].mesh = convertThreads [i].meshfillter.sharedMesh; convertThreads [i].mfname = convertThreads [i].meshfillter.name; convertThreads [i].mats = convertThreads [i].meshfillter.GetComponent <Renderer> ().sharedMaterials; convertThreads [i].subMeshCount = convertThreads [i].mesh.subMeshCount; convertThreads [i].vertices = convertThreads [i].mesh.vertices; convertThreads [i].normals = convertThreads [i].mesh.normals; convertThreads [i].uv = convertThreads [i].mesh.uv; convertThreads [i].uv2 = convertThreads [i].mesh.uv2; convertThreads [i].colors = convertThreads [i].mesh.colors; convertThreads [i].matsname = new string[convertThreads [i].mesh.subMeshCount]; for (int v = 0; v < convertThreads [i].mats.Length; v++) { convertThreads [i].matsname [v] = convertThreads [i].mats [v].name; } convertThreads [i].triangles = new TriangleData[convertThreads [i].subMeshCount]; for (int t = 0; t < convertThreads [i].triangles.Length; t++) { convertThreads [i].triangles [t].triangles = convertThreads [i].mesh.GetTriangles(t); } } }
public async Task Index_ShouldReturnPostsAndThreadInstance() { //Assert var mockPostRepository = new Mock <IUserPostService>(); var mockInstanceRepository = new Mock <IUserThreadInstancesService>(); var methodPostCalled = false; var methodInstanceCalled = false; var instance = new ThreadInstance() { Id = 1, Name = "f/First" }; var posts = new[] { new Post() { Id = 1, Name = "First", ThreadInstanceId = instance.Id }, new Post() { Id = 2, Name = "Second", ThreadInstanceId = instance.Id }, new Post() { Id = 3, Name = "Third", ThreadInstanceId = instance.Id }, }; var models = new[] { new PostConciseViewModel() { Id = 1, Name = "First" }, new PostConciseViewModel() { Id = 2, Name = "Second" }, new PostConciseViewModel() { Id = 3, Name = "Third" }, }; context.ThreadInstances.Add(instance); context.SaveChanges(); context.Posts.AddRange(posts); context.SaveChanges(); mockInstanceRepository .Setup(repo => repo.GetInstanceAsync(instance.Id)) .ReturnsAsync(instance) .Callback(() => methodInstanceCalled = true); mockPostRepository .Setup(repo => repo.GetPostsAsync(instance.Id)) .ReturnsAsync(models) .Callback(() => methodPostCalled = true); //Mock http context? var indexModel = new IndexModel(mockPostRepository.Object, mockInstanceRepository.Object); //Act var result = await indexModel.OnGet(instance.Id) as ViewResult; //Assert Assert.IsTrue(methodInstanceCalled); Assert.IsTrue(methodPostCalled); Assert.AreEqual(indexModel.ThreadInstanceId, instance.Id); Assert.AreEqual(indexModel.ThreadInstanceName, instance.Name.Substring(2, instance.Name.Length - 2)); CollectionAssert.AreEqual(new[] { 1, 2, 3 }, indexModel.Posts.Select(u => u.Id).ToArray()); }