예제 #1
0
    public void TestProviderDurabilityDecreaseAndRepair()
    {
        //IProvider provider = new PressureProvider(1, 100);

        IList <string> args = new List <string> {
            "Pressure", "1", "100"
        };

        IEnergyRepository energyRepository = new EnergyRepository();

        IProviderController providerController = new ProviderController(energyRepository);

        providerController.Register(args);
        providerController.Produce();
        providerController.Produce();

        double Expected = 500;
        double current  = ((Provider)providerController.Entities.First()).Durability;

        Assert.That(current, Is.EqualTo(Expected));

        providerController.Repair(RepairValue);

        Expected = 700;
        current  = ((Provider)providerController.Entities.First()).Durability;

        Assert.That(current, Is.EqualTo(Expected));
    }
예제 #2
0
    public static void Main()
    {
        // Идеята на това решение е вземайки двата контролера HarvesterController и ProviderController
        // и вкарвайки ги като полета (един от тих илии двата) в командите,
        // ползвайки техните методи да достъпваме всичко необходимо ни в работата, вместо
        // да подавам евсички дипендънсита като полета на всяка команда!!!!!!!!!!!


        // Structure - 250/250; IO - error;
        IHarvesterFactory harvesterFactory = new HarvesterFactory();
        IProviderFactory  providerFactory  = new ProviderFactory();
        IEnergyRepository energyRepository = new EnergyRepository();
        // DraftManager manager = new DraftManager(harvesterFactory, providerFactory);

        //ICommandInterpreter commandInterpreter = new CommandInterpreter(harvesterFactory, providerFactory,
        //       repository, manager);
        IHarvesterController harvesterController = new HarvesterController(energyRepository, harvesterFactory);
        IProviderController  providerController  = new ProviderController(energyRepository);
        ICommandInterpreter  commandInterpreter  = new CommandInterpreter(harvesterController, providerController);

        IWriter writer = new Writer();
        IReader reader = new Reader();

        // Engine engine = new Engine(harvesterFactory, providerFactory, repository, commandInterpreter, writer, reader);
        Engine engine = new Engine(commandInterpreter, writer, reader);

        engine.Run();
    }
예제 #3
0
    private static ICommandInterpreter InitializeCommandInterpreter()
    {
        IEnergyRepository    energyRepository    = new EnergyRepository();
        IHarvesterController harvesterController = new HarvesterController(energyRepository);
        IProviderController  providerController  = new ProviderController(energyRepository);

        return(new CommandInterpreter(harvesterController, providerController));
    }
    public void ConstructorInitialisesAndExists()
    {
        IEnergyRepository   energyRepository  = new EnergyRepository();
        IProviderController providerControler = new ProviderController(energyRepository);

        Assert.NotNull(providerControler, "ProviderController was not created properly");
        Assert.That(((ProviderController)providerControler).Entities.Count == 0, "Entities not set to zero");
    }
예제 #5
0
    public static void Main(string[] args)
    {
        IEnergyRepository    energyRepository    = new EnergyRepository();
        IHarvesterController harvesterController = new HarvesterController(energyRepository);
        IProviderController  providerController  = new ProviderController(energyRepository);
        ICommandInterpreter  interpreter         = new CommandInterpreter(harvesterController, providerController);
        Engine engine = new Engine(interpreter);

        engine.Run();
    }
 public void SetUpProviderController()
 {
     this.energyRepository   = new EnergyRepository();
     this.providerController = new ProviderController(energyRepository);
     provider = new List <string> {
         "Solar", "1", "100"
     };
     secondProvider = new List <string> {
         "Solar", "2", "100"
     };
 }
예제 #7
0
    public void TestRepair(double value)
    {
        IEnergyRepository   repository = new EnergyRepository();
        IProviderController controller = new ProviderController(repository);

        var res = string.Empty;

        res = controller.Repair(value);

        Assert.AreEqual($"Providers are repaired by {value}", res.Trim());
    }
예제 #8
0
    public static void Main(string[] args)
    {
        IEnergyRepository    energyRepository    = new EnergyRepository();
        IProviderController  providerController  = new ProviderController(energyRepository);
        IHarvesterController harvesterController = new HarvesterController(energyRepository);
        IReader reader = new ConsoleReader();
        IWriter writer = new ConsoleWriter();
        Engine  engine = new Engine(reader, writer, providerController, harvesterController);

        engine.Run();
    }
예제 #9
0
    public static void Main()
    {
        IReader              reader              = new ConsoleReader();
        IWriter              writer              = new ConsoleWriter();
        IEnergyRepository    energyRepository    = new EnergyRepository();
        IHarvesterController harvesterController = new HarvesterController(energyRepository);
        IProviderController  providerController  = new ProviderController(energyRepository);
        ICommandInterpreter  commandInterpreter  = new CommandInterpreter(harvesterController, providerController);
        var engine = new Engine(reader, writer, harvesterController, providerController, commandInterpreter);

        engine.Run();
    }
예제 #10
0
    public static void Main(string[] args)
    {
        IEnergyRepository energyRepository = new EnergyRepository();
        IHarvesterFactory harvesterFactory = new HarvesterFactory();

        IHarvesterController harvesterController = new HarvesterController(energyRepository, harvesterFactory);
        IProviderController  providerController  = new ProviderController(energyRepository);
        ICommandInterpreter  commandInterpreter  = new CommandInterpreter(harvesterController, providerController);

        Engine engine = new Engine(commandInterpreter, new ConsoleReader(), new ConsoleWriter());

        engine.Run();
    }
예제 #11
0
    public static void Main(string[] args)
    {
        var reader              = new Reader();
        var writer              = new Writer();
        var energyRepo          = new EnergyRepository();
        var harvesterController = new HarvesterController(energyRepo);
        var providerController  = new ProviderController(energyRepo);
        var commandInterpreter  = new CommandInterpreter(harvesterController, providerController);

        Engine engine = new Engine(writer, reader, commandInterpreter);

        engine.Run();
    }
    public void RegisterRegistersProperly(string input)
    {
        IList <string> arguments = input.Split().ToList();

        IEnergyRepository energyRepository = new EnergyRepository();
        var    providerControler           = new ProviderController(energyRepository);
        string actualMessage   = providerControler.Register(arguments);
        string expectedMessage = $"Successfully registered {arguments[0]}Provider";

        Assert.AreEqual(expectedMessage, actualMessage, "Output message differs from expected!");
        int addedEntities = providerControler.Entities.Count;

        Assert.AreEqual(1, addedEntities, "Provider is not added to pool!");
    }
예제 #13
0
    public static void Main(string[] args)
    {
        IDraftManager        draftManager        = new DraftManager();
        IReader              reader              = new ConsoleReader();
        IWriter              writer              = new ConsoleWriter();
        IEnergyRepository    energyRepository    = new EnergyRepository();
        IHarvesterController harvesterController = new HarvesterController(energyRepository);
        IProviderController  providerController  = new ProviderController(energyRepository);
        ICommandInterpreter  commandInterpreter  = new CommandInterpreter(harvesterController, providerController);

        Engine engine = new Engine(draftManager, reader, writer, commandInterpreter);

        engine.Run();
    }
예제 #14
0
    private static IServiceProvider ConfigureServices()
    {
        IServiceCollection services = new ServiceCollection();

        IEnergyRepository energyRepository = new EnergyRepository();

        //services.AddSingleton<IEnergyRepository, EnergyRepository>();
        services.AddSingleton <IProviderController>(s => new ProviderController(energyRepository));
        services.AddSingleton <IHarvesterController>(s => new HarvesterController(energyRepository));

        IServiceProvider serviceProvider = services.BuildServiceProvider();

        return(serviceProvider);
    }
예제 #15
0
    public static void Main(string[] args)
    {
        IHarvesterFactory    harvesterFactory    = new HarvesterFactory();
        IEnergyRepository    energyRepository    = new EnergyRepository();
        IHarvesterController harvesterController = new HarvesterController(harvesterFactory, new List <IHarvester>(), energyRepository);
        IProviderController  providerController  = new ProviderController(energyRepository);
        ICommandInterpreter  commandInterpreter  = new CommandInterpreter(harvesterController, providerController);
        IReader reader = new Reader();
        IWriter writer = new Writer();

        Engine engine = new Engine(reader, writer, commandInterpreter);

        engine.Run();
    }
    public static void Main()
    {
        IHarvesterFactory    harvesterFactory    = new HarvesterFactory();
        IEnergyRepository    energyRepository    = new EnergyRepository();
        List <IHarvester>    harvesters          = new List <IHarvester>();
        IHarvesterController harvesterController = new HarvesterController(harvesterFactory, energyRepository, harvesters);
        IProviderController  providerController  = new ProviderController(energyRepository);
        ICommandInterpreter  commandInterpreter  = new CommandInterpreter(harvesterController, providerController);
        IWriter writer = new ConsoleWriter();
        IReader reader = new ConsoleReader();

        Engine engine = new Engine(commandInterpreter, reader, writer);

        engine.Run();
    }
예제 #17
0
    public void TestMethod()
    {
        var energy   = new EnergyRepository();
        var provider = new ProviderController(energy);
        var list     = new List <string>();

        list.Add("Pressure");
        list.Add("40");
        list.Add("100");

        var result = provider.Register(list);
        var t      = "Successfully registered PressureProvider";

        Assert.AreEqual(result, t);
    }
        public void ProvidersGetRapair()
        {
            List <string> provider1 = new List <string> {
                "Pressure", "1", "100"
            };

            var energyRep          = new EnergyRepository();
            var providerController = new ProviderController(energyRep);

            providerController.Register(provider1);

            providerController.Repair(100);

            Assert.That(providerController.Entities.First().Durability, Is.EqualTo(800));
        }
예제 #19
0
    public void TestRegister()
    {
        IList <string> providerArguments = new List <string> {
            "Pressure", "40", "100"
        };
        IEnergyRepository energyRepository = new EnergyRepository();

        IProviderController providerController = new ProviderController(energyRepository);

        providerController.Register(providerArguments);

        int actual   = providerController.Entities.Count;
        int expected = 1;

        Assert.That(actual, Is.EqualTo(expected));
    }
예제 #20
0
    public void TestRetunredResultFromSuccessfullyRegisteredPressureProvider()
    {
        var energy   = new EnergyRepository();
        var provider = new ProviderController(energy);

        var list = new List <string>();

        list.Add("Pressure");
        list.Add("40");
        list.Add("100");

        var result = provider.Register(list);
        var t      = "Successfully registered PressureProvider";

        Assert.AreEqual(provider.Entities.Count, 1);
    }
예제 #21
0
    public void TestProduce()
    {
        List <IProvider>    providers  = new List <IProvider>();
        IEnergyRepository   repository = new EnergyRepository();
        IProviderFactory    factory    = new ProviderFactory();
        IProviderController controller = new ProviderController(repository);

        var provider1 = controller.Register(new List <string> {
            "Provider", "Pressure", "40", "100"
        });

        var returnMessage = controller.Produce();

        Assert.AreEqual("Produced 200 energy today!", returnMessage);
        Assert.AreEqual(200, controller.TotalEnergyProduced);
    }
        public void ProduceReturnCorrectMessage()
        {
            List <string> provider1 = new List <string> {
                "Solar", "1", "100"
            };
            List <string> provider2 = new List <string> {
                "Solar", "2", "100"
            };
            var energyRep          = new EnergyRepository();
            var providerController = new ProviderController(energyRep);

            providerController.Register(provider1);
            providerController.Register(provider2);

            //Due to this thest some tests do NOT pass in JUDGE
            Assert.That(providerController.Produce(), Is.EqualTo("Produced 200 energy today!"));
        }
예제 #23
0
    public static void Main(string[] args)
    {
        // https://github.com/ignatovg/Software-University/blob/master/Projects/Minedraft.docx
        IEnergyRepository energyRepository = new EnergyRepository();

        IHarvesterFactory    harvesterFactory    = new HarvesterFactory();
        IHarvesterController harvesterController = new HarvesterController(energyRepository, harvesterFactory);
        IProviderController  providerController  = new ProviderController(energyRepository);

        ICommandInterpreter commandInterpreter = new CommandInterpreter(harvesterController, providerController);
        IReader             reader             = new ConsoleReader();
        IWriter             writer             = new ConsoleWriter();

        Engine engine = new Engine(commandInterpreter, reader, writer);

        engine.Run();
    }
예제 #24
0
    public void TestTotalEnergy()
    {
        IList <string> providerArguments = new List <string> {
            "Pressure", "40", "100"
        };
        IEnergyRepository energyRepository = new EnergyRepository();

        IProviderController providerController = new ProviderController(energyRepository);

        providerController.Register(providerArguments);

        providerController.Produce();

        double actual   = providerController.TotalEnergyProduced;
        double expected = 200;

        Assert.That(actual, Is.EqualTo(expected));
    }
        public void BrokenProviderIsDeleted()
        {
            List <string> provider1 = new List <string> {
                "Pressure", "1", "100"
            };

            var energyRep          = new EnergyRepository();
            var providerController = new ProviderController(energyRep);

            providerController.Register(provider1);

            for (int i = 0; i < 8; i++)
            {
                providerController.Produce();
            }


            Assert.That(providerController.Entities.Count, Is.EqualTo(0));
        }
예제 #26
0
    public void TestRegisterProvider()
    {
        //IProvider provider = new PressureProvider(1, 100);

        IList <string> args = new List <string> {
            "Pressure", "1", "100"
        };

        IEnergyRepository energyRepository = new EnergyRepository();

        IProviderController providerController = new ProviderController(energyRepository);

        providerController.Register(args);

        int currentEntitiesCount = ((ProviderController)providerController).Entities.Count;

        const int Expected = 1;

        Assert.That(currentEntitiesCount, Is.EqualTo(Expected));
    }
예제 #27
0
    public void Tes2t2()
    {
        var sb = new StringBuilder();

        sb.AppendLine("Produced 200 energy today!");
        sb.AppendLine("Produced 400 ore today!");

        var energy   = new EnergyRepository();
        var provider = new ProviderController(energy);

        var list = new List <string>();

        list.Add("Pressure");
        list.Add("40");
        list.Add("100");

        var t = provider.Produce();

        Assert.AreEqual(t, sb.ToString());
    }
예제 #28
0
    public static void Main()
    {
        var harvesters = new List <IHarvester>();
        var providers  = new List <IProvider>();

        IHarvesterFactory harvesterFactory = new HarvesterFactory();
        IProviderFactory  providerFactory  = new ProviderFactory();

        var energyRepository = new EnergyRepository();

        IHarvesterController harvesterController = new HarvesterController(harvesters, harvesterFactory, energyRepository);
        IProviderController  providerController  = new ProviderController(providers, energyRepository, providerFactory);

        var reader             = new ConsoleReader();
        var writer             = new ConsoleWriter();
        var commandInterpreter = new CommandInterpreter(harvesterController, providerController);

        Engine engine = new Engine(writer, reader, commandInterpreter);

        engine.Run();
    }
예제 #29
0
    public static void Main(string[] args)
    {
        var    providers  = new List <IProvider>();
        var    harvesters = new List <IHarvester>();
        string mode       = Modes.FullMode;

        IHarvesterFactory harvesterFactory = new HarvesterFactory();
        IProviderFactory  providerFactory  = new ProviderFactory();

        IEnergyRepository    energyRepository    = new EnergyRepository();
        IProviderController  providerController  = new ProviderController(energyRepository, providers, providerFactory);
        IHarvesterController harvesterController = new HarvesterController(energyRepository, harvesters, harvesterFactory, mode);

        ICommandInterpreter commandInterpreter = new CommandInterpreter(energyRepository, harvesterController, providerController, harvesters, providers);
        IWriter             writer             = new ConsoleWriter();
        IReader             reader             = new ConsoleReader();

        Engine engine = new Engine(writer, reader, commandInterpreter);

        engine.Run();
    }
예제 #30
0
    public void TestEnergyProduced()
    {
        //IProvider provider = new PressureProvider(1, 100);

        IList <string> args = new List <string> {
            "Pressure", "1", "100"
        };

        IEnergyRepository energyRepository = new EnergyRepository();

        IProviderController providerController = new ProviderController(energyRepository);

        providerController.Register(args);
        providerController.Produce();
        providerController.Produce();

        double Expected = 400;
        double current  = providerController.TotalEnergyProduced;

        Assert.That(current, Is.EqualTo(Expected));
    }