示例#1
0
        internal void DoIt()
        {
            Stream ns = connectionSocket.GetStream();

            Afgift       afgift = new Afgift();
            StreamReader sr     = new StreamReader(ns);
            StreamWriter sw     = new StreamWriter(ns);

            sw.AutoFlush = true;
            while (true)
            {
                string message = sr.ReadLine();
                string answer  = "";
                while (!string.IsNullOrEmpty(message))
                {
                    Console.WriteLine("Client: " + message);
                    if (message.Contains("Elbil"))
                    {
                        var number = Regex.Match(message, @"\d+").Value;

                        if (number != null)
                        {
                            int elbilafgift = Convert.ToInt32(number);


                            answer = "Afgift på elbil: " + afgift.ElBilAfgift(elbilafgift).ToString();
                        }
                        else
                        {
                            answer = "Angiv pris f.eks. 200000";
                        }
                    }
                    else if (message.Contains("Personbil"))
                    {
                        var number = Regex.Match(message, @"\d+").Value;

                        if (number != null)
                        {
                            int personbilafgift = Convert.ToInt32(number);


                            answer = "Afgift på personbil: " + afgift.Bilafgift(personbilafgift).ToString();
                        }
                        else
                        {
                            answer = "Angiv pris f.eks. 200000";
                        }
                    }
                    else
                    {
                        answer = "Angiv om det er Personbil eller Elbil og prisen";
                    }
                    sw.WriteLine(answer);
                    message = sr.ReadLine();
                }

                ns.Close();
                connectionSocket.Close();
            }
        }
示例#2
0
        // this method needs to be async and have the return type Task
        public async Task doIt()
        {
            Stream ns = _connectionSocket.GetStream();
            // Stream ns = new NetworkStream(connectionSocket);

            StreamReader sr = new StreamReader(ns);
            StreamWriter sw = new StreamWriter(ns);

            sw.AutoFlush = true; // enable automatic flushing


            while (true)
            {
                string type = await sr.ReadLineAsync();

                string price = await sr.ReadLineAsync();

                // runs this code if the type is per
                if (type == "per")
                {
                    int outcome = Afgift.BilAfgift(Convert.ToInt32(price));
                    sw.WriteLine(outcome + " kr");
                }

                // runs this code if the type is el
                if (type == "el")
                {
                    int outcome = Afgift.ElBilAfgift(Convert.ToInt32(price));
                    sw.WriteLine(outcome + " kr");
                }
            }

            ns.Close();
        }
示例#3
0
        public void ElBilAfgiftHøj()
        {
            Afgift afgift1 = new Afgift();

            decimal pris = afgift1.ElbilAfgift(300000);

            Assert.AreEqual(64000, pris);
        }
示例#4
0
        public void ElBilAfgiftLav()
        {
            Afgift afgift1 = new Afgift();

            decimal pris = afgift1.ElbilAfgift(200000);

            Assert.AreEqual(34000, pris);
        }
示例#5
0
        public void BilAfgiftHøj()
        {
            Afgift afgift1 = new Afgift();

            decimal pris = afgift1.BilAfgift(300000);

            Assert.AreEqual(320000, pris);
        }
示例#6
0
        public void TestNegativVærdi()
        {
            //Alm bil
            Assert.ThrowsException <ArgumentOutOfRangeException>(() => Afgift.BilAfgift(-1000));

            //elbil
            Assert.ThrowsException <ArgumentOutOfRangeException>(() => Afgift.ElbilAfgift(-1000));
        }
示例#7
0
        public void BilAfgiftlav()
        {
            Afgift afgift1 = new Afgift();

            decimal pris = afgift1.BilAfgift(200000);

            Assert.AreEqual(170000, pris);
        }
        public void DoIt()
        {
            Stream       networkStream = _connectionSocket.GetStream();
            StreamReader sr            = new StreamReader(networkStream);
            StreamWriter sw            = new StreamWriter(networkStream);

            sw.AutoFlush = true; // enable automatic flushing

            string message = sr.ReadLine();
            string answer  = "";

            while (message != null && message != "")
            {
                Console.WriteLine("Client: " + message);
                if (message == "Personbil")
                {
                    answer = "Indtast pris";
                    sw.WriteLine(answer);

                    message = sr.ReadLine();
                    int pris = Convert.ToInt32(message);

                    Afgift afgift = new Afgift();

                    answer = ("Afgiften er " + afgift.BilAfgift(pris).ToString());
                    sw.WriteLine(answer);
                }

                if (message == "Elbil" || message == "elbil")
                {
                    answer = "Indtast pris:";
                    sw.WriteLine(answer);

                    message = sr.ReadLine();

                    try
                    {
                        int pris = Convert.ToInt32(message);

                        Afgift afgift = new Afgift();

                        answer = ("Elbil afgiften er: " + afgift.ElBilAfgift(pris).ToString());
                        sw.WriteLine(answer);
                    }
                    catch (FormatException e)
                    {
                        Console.WriteLine("Svar skal kun være tal", e.Message);
                    }
                }

                else
                {
                    answer = "Du skal indtaste personbil eller elbil";
                    sw.WriteLine();
                }
                message = sr.ReadLine();
            }
        }
示例#9
0
        // Tester om metoden smider en exception hvis prisen er over eller lig med max værdien for en double.
        public void TestMaxValuePris()
        {
            //Arrange
            double pris = double.MaxValue;
            string type = "Personbil";

            //Act og Assert
            Assert.ThrowsException <ArgumentOutOfRangeException>(() => Afgift.BilAfgift(pris, type));
        }
示例#10
0
        private static void ThreadProc(object obj)
        {
            try
            {
                TcpClient client = (TcpClient)obj;

                Console.WriteLine("New connection!");

                byte[]        bytes  = new byte[512];
                NetworkStream stream = client.GetStream();

                int i;

                while ((i = stream.Read(bytes, 0, bytes.Length)) != 0)
                {
                    string data = Encoding.ASCII.GetString(bytes, 0, i);

                    Console.WriteLine("Received:\n{0}", data);

                    byte[] msg = null;

                    var split = data.Split(' ');

                    if (split[0] == "ElBil")
                    {
                        int price = int.Parse(split[1]);

                        Afgift afgift = new Afgift();
                        data = Afgift.elBilAfgift(price).ToString();
                    }
                    else if (split[0] == "Bil")
                    {
                        int price = int.Parse(split[1]);

                        Afgift afgift = new Afgift();
                        data = Afgift.bilAfgift(price).ToString();
                    }
                    else
                    {
                        data = "Incorrect format.";
                    }

                    msg = Encoding.ASCII.GetBytes(data);

                    stream.Write(msg, 0, msg.Length);
                    Console.WriteLine("Sent:\n{0}", data);
                    break;
                }

                client.Close();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
示例#11
0
        public void TestBilligBil()
        {
            int pris = 25000;

            //Beregning af afgift for normal bil
            Assert.AreEqual(21250, Afgift.BilAfgift(pris));

            //Beregning for elbil
            Assert.AreEqual(4250, Afgift.ElbilAfgift(pris));
        }
示例#12
0
        public void TestGrænseværdi()
        {
            int pris = 200000;

            //Beregning af afgift for normal bil
            Assert.AreEqual(170000, Afgift.BilAfgift(pris));

            //Beregning af afgift for elbil
            Assert.AreEqual(34000, Afgift.ElbilAfgift(pris));
        }
示例#13
0
        public void TestDyrBil()
        {
            int pris = 350000;

            //beregning af afgift for normal bil
            Assert.AreEqual(395000, Afgift.BilAfgift(pris));

            //Beregning af afgift for elbil
            Assert.AreEqual(79000, Afgift.ElbilAfgift(pris));
        }
示例#14
0
        public void TestMethodElBilAfgiftOver200000()
        {
            Afgift a           = new Afgift();
            var    acualResult = a.ElBilAfgift(462000);

            const double expectedResult = 112600;

            Assert.AreEqual(expectedResult, acualResult, 0.5,
                            "ERROR: The expected result did not match the actual result.");
        }
示例#15
0
        public void TestBilAfgiftException()
        {
            // Arrange
            Afgift afgiftKlasse = new Afgift();

            // Act
            int resultat = afgiftKlasse.BilAfgift(-1);

            // Assert. Hvis den når hertil skal den fejle da den ikke har smidt en exception som den skal.
            Assert.Fail();
        }
示例#16
0
        public void ElBilAfgift()
        {
            //Arrange
            var bilafgift = new Afgift();

            //Act
            double afgift = bilafgift.ElBilAfgift(100000);

            //Assert
            Assert.AreEqual(17000, afgift);
        }
示例#17
0
        public void BilAfgiftErMindreEndEllerLigMed200000()
        {
            //Arrange
            var bilafgift = new Afgift();

            //Act
            double afgift = bilafgift.BilAfgift(100000);

            //Assert
            Assert.AreEqual(85000, afgift);
        }
示例#18
0
        public void BilAfgiftErStørreEnd200000()
        {
            //Arrange
            var bilafgift = new Afgift();

            //Act
            double afgift = bilafgift.BilAfgift(300000);

            //Assert
            Assert.AreEqual(320000, afgift);
        }
示例#19
0
        public void ElbilOver200000()
        {
            // ARRANGE
            int    pris     = 250000;
            double expected = ((pris * 1.50) - 130000) * 0.20;

            // ACT
            int actual = Afgift.ElBilAfgift(pris);

            // ARRANGE
            Assert.AreEqual((int)expected, actual, "Are not equal");
        }
示例#20
0
        public void PersonbilOver200000()
        {
            // ARRANGE
            int    pris     = 250000;
            double expected = (pris * 1.50) - 130000;

            // ACT
            int actual = Afgift.BilAfgift(pris);

            // ASSERT
            Assert.AreEqual((int)expected, actual, "Are not equal");
        }
示例#21
0
        public void ElbilUnder200000()
        {
            // ARRANGE
            int    pris     = 150000;
            double expected = (pris * 0.85) * 0.20;

            // ACT
            int actual = Afgift.ElBilAfgift(pris);

            // ASSERT
            Assert.AreEqual((int)expected, actual, "Are not equal");
        }
示例#22
0
        public void TestEilBilAfgiftForhøjet()
        {
            // Arrange
            Afgift afgiftKlasse = new Afgift();

            // Act
            int resultat          = afgiftKlasse.ElBilAfgift(200001);
            int forventetResultat = 34000;

            // Assert
            Assert.AreEqual(forventetResultat, resultat);
        }
示例#23
0
        public void TestElBilAfgift()
        {
            // Arrange
            Afgift afgiftKlasse = new Afgift();

            // Act
            int resultat          = afgiftKlasse.ElBilAfgift(100000);
            int forventetResultat = 17000;

            // Assert
            Assert.AreEqual(forventetResultat, resultat);
        }
示例#24
0
        // Tester om metoden kan håndtere og udregne det korrekte svar.
        public void TestElbil200000Pris()
        {
            //Arrange
            double pris           = 200000;
            string type           = "Elbil";
            double expectedResult = 34000;

            //Act
            double result = Afgift.BilAfgift(pris, type);

            //Assert
            Assert.AreEqual(expectedResult, result);
        }
示例#25
0
        // Tester om metoden kan håndtere og udregne det korrekte svar.
        public void TestOver200000Pris()
        {
            //Arrange
            double pris           = 230000;
            string type           = "Personbil";
            double expectedResult = 215000;

            //Act
            double result = Afgift.BilAfgift(pris, type);

            //Assert
            Assert.AreEqual(expectedResult, result);
        }
        public void ElbilAfgiftTest()
        {
            //Arrange
            double pris = 250000;

            double expectedvalue = 49000;

            //Act
            double actual = Afgift.ElBilAfgift(pris);

            //Assert
            Assert.AreEqual(expectedvalue, actual);
        }
示例#27
0
        public void ElBilAfgiftOver200000()
        {
            // ARRANGE
            Afgift afgift   = new Afgift();
            int    pris     = 400000;
            double expected = ((pris * 1.50) - 130000) * 0.20;

            // ACT
            int actual = afgift.ElBilAfgift(pris);

            // ASSERT
            Assert.AreEqual(expected, actual, "Are not equal");
        }
示例#28
0
        public void BilAfgiftUnder200000()
        {
            // ARRANGE
            Afgift afgift   = new Afgift();
            int    pris     = 150000;
            double expected = pris * 0.85;

            // ACT
            int actual = afgift.BilAfgift(pris);

            // ASSERT
            Assert.AreEqual((int)expected, actual, "Are not equal");
        }
        public void AlmBilAfgiftOverTest()
        {
            //Arrange
            double pris          = 230000;
            double expectedvalue = 215000;


            //Act

            double actuel = Afgift.BilAfgift(pris);

            //Assert
            Assert.AreEqual(expectedvalue, actuel);
        }
示例#30
0
        public void DoIt()
        {
            try
            {
                Stream       ns = _connectionSocket.GetStream();
                StreamReader sr = new StreamReader(ns);
                StreamWriter sw = new StreamWriter(ns);
                sw.AutoFlush = true;
                Afgift afgift = new Afgift();

                string messageCarType = sr.ReadLine();
                string messagePrice   = sr.ReadLine();
                int    price          = Convert.ToInt32(messagePrice);
                string answer;

                switch (messageCarType)
                {
                case "Personbil":
                {
                    string regAfgift = afgift.BilAfgift(price).ToString();
                    answer = "Registreringsafgiften er: " + regAfgift;
                    sw.WriteLine(answer);
                    break;
                }

                case "Elbil":
                {
                    string regAfgift = afgift.ElBilAfgift(price).ToString();
                    answer = "Registreringsafgiften er: " + regAfgift;
                    sw.WriteLine(answer);
                    break;
                }

                default:
                {
                    answer = "Du skal skrive Personbil eller Elbil";
                    sw.WriteLine(answer);
                    break;
                }
                }
            }
            catch (FormatException e)
            {
                Console.WriteLine("Format is not number", e.Message);
            }
            catch (ArgumentNullException e)
            {
                Console.WriteLine("Argument cant be null or empty", e.Message);
            }
        }