public void Create_machines() { CloudInfrastructure cloud = new CloudInfrastructure(); // create a new machine with 4 parameters : name, operating system, disk size, memory. cloud.CreateMachine("machine1", "Linux", "50gb", "8gb"); cloud.CreateMachine("machine2", "Windows", "20gb", "4gb"); // Remember, all machines are inactive by default. Assert.AreEqual("machine1:Inactive||machine2:Inactive", cloud.ListMachines()); cloud.StartMachine("machine1"); // start the machine "machine1" Assert.AreEqual("machine1:running||machine2:Inactive", cloud.ListMachines()); cloud.StartMachine("machine2"); cloud.StopMachine("machine1"); // stop machine "machine1" Assert.AreEqual("machine1:stopped||machine2:running", cloud.ListMachines()); }
public void cannot_launch_already_started_machine() { CloudInfrastructure cloud = new CloudInfrastructure(); cloud.CreateMachine("machine1", "Linux", "50gb", "8gb"); cloud.StartMachine("machine1"); Assert.AreEqual("machine1:running", cloud.ListMachines()); cloud.StartMachine("machine1"); // will throw the exception }
public void can_check_aggregated_data_for_all_machines_and_stores() { CloudInfrastructure cloud = new CloudInfrastructure(); cloud.CreateMachine("machine1", "Linux", "50gb", "8gb"); cloud.CreateMachine("machine2", "Windows", "20gb", "4gb"); Assert.AreEqual("machine1:Inactive||machine2:Inactive", cloud.ListMachines()); // globalUsedDisk method should return the used disk of all machines and stores existing in the cloud // for now 2 machines exists, with 50gb and 20gb disk sizes = 70gb Assert.AreEqual(70, cloud.GlobalUsedDisk(), 0.00001); // machines are inactive, no memory is used Assert.AreEqual(0, cloud.GlobalUsedMemory(), 0.00001); cloud.StartMachine("machine1"); Assert.AreEqual(70, cloud.GlobalUsedDisk(), 0.00001); Assert.AreEqual(8, cloud.GlobalUsedMemory(), 0.00001); cloud.StartMachine("machine2"); Assert.AreEqual(70, cloud.GlobalUsedDisk(), 0.00001); Assert.AreEqual(12, cloud.GlobalUsedMemory(), 0.00001); cloud.CreateStore("myImages"); cloud.UploadDocument("myImages", "picture.jpeg"); // 2 machines and 1 documents now exists in the cloud Assert.AreEqual(70.100, cloud.GlobalUsedDisk(), 0.00001); Assert.AreEqual(12, cloud.GlobalUsedMemory(), 0.00001); cloud.UploadDocument("myImages", "profile.png"); Assert.AreEqual(70.200, cloud.GlobalUsedDisk(), 0.00001); Assert.AreEqual(12, cloud.GlobalUsedMemory(), 0.00001); cloud.StopMachine("machine1"); Assert.AreEqual(70.200, cloud.GlobalUsedDisk(), 0.00001); Assert.AreEqual(4, cloud.GlobalUsedMemory(), 0.00001); cloud.EmptyStore("myImages"); Assert.AreEqual(70, cloud.GlobalUsedDisk(), 0.00001); Assert.AreEqual(4, cloud.GlobalUsedMemory(), 0.00001); }
public void Can_check_used_disk_and_ram_per_machine() { CloudInfrastructure cloud = new CloudInfrastructure(); cloud.CreateMachine("machine1", "Linux", "50gb", "8gb"); Assert.AreEqual("machine1:Inactive", cloud.ListMachines()); Assert.AreEqual(0, cloud.UsedMemoryMachine("machine1"), 0.00001); // Only running machines consume memory Assert.AreEqual(50, cloud.UsedDiskMachine("machine1"), 0.00001); // the disk is always consumed cloud.StartMachine("machine1"); Assert.AreEqual(8, cloud.UsedMemoryMachine("machine1"), 0.00001); // All the machine memory is used as it is now running Assert.AreEqual(50, cloud.UsedDiskMachine("machine1"), 0.00001); cloud.StopMachine("machine1"); // The memory will be released as the machine has been stopped Assert.AreEqual(0, cloud.UsedMemoryMachine("machine1"), 0.00001); Assert.AreEqual(50, cloud.UsedDiskMachine("machine1"), 0.00001); }