Пример #1
0
    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);
            }
        }
    }
Пример #2
0
        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());
        }