public void ProcessFace_ThrowsWhenSubmeshCollecionIsEmpty()
        {
            Mesh             mesh   = new Mesh();
            ObjParsingWorker worker = new ObjParsingWorker();

            Assert.That(() => worker.ProcessFace(string.Empty, mesh), Throws.InvalidOperationException);
        }
        public void ProcessFace_ShouldAddFaceItemWithoutVertex()
        {
            Mesh mesh = new Mesh();

            mesh.SubMeshes.Add(new SubMesh());
            ObjParsingWorker worker = new ObjParsingWorker();

            string line = "f ";

            worker.ProcessFace(line, mesh);

            Assert.That(mesh.SubMeshes.Last().Faces.First().Items.Count, Is.EqualTo(1));
            FaceItem faceItem = mesh.SubMeshes.Last().Faces.First().Items.First();

            Assert.That(faceItem.Vertex, Is.EqualTo(default(uint)));
        }
        public void ProcessFace_ShouldAddFaceWithOneFaceItemWithVertex()
        {
            Mesh mesh = new Mesh();

            mesh.SubMeshes.Add(new SubMesh());
            ObjParsingWorker worker = new ObjParsingWorker();

            uint   value = 3;
            string line  = $"f {value}";

            worker.ProcessFace(line, mesh);

            Assert.That(mesh.SubMeshes.Last().Faces.First().Items.Count, Is.EqualTo(1));
            FaceItem faceItem = mesh.SubMeshes.Last().Faces.First().Items.First();

            Assert.That(faceItem.Vertex, Is.EqualTo(value));
        }
        public void ProcessFace_ShouldAddFaceWithOneFaceItemWithVertexAndTexture()
        {
            Mesh mesh = new Mesh();

            mesh.SubMeshes.Add(new SubMesh());
            ObjParsingWorker worker = new ObjParsingWorker();

            uint   x    = 3;
            uint   y    = 4;
            string line = $"f {x}/{y}";

            worker.ProcessFace(line, mesh);

            Assert.That(mesh.SubMeshes.Last().Faces.First().Items.Count, Is.EqualTo(1));
            FaceItem faceItem = mesh.SubMeshes.Last().Faces.First().Items.First();

            Assert.That(faceItem.Vertex, Is.EqualTo(x));
            Assert.That(faceItem.Texture, Is.EqualTo(y));
        }