Esempio n. 1
0
        public void AddTwoZimmerToHotel()
        {
            Hotel hotel1 = new Hotel()
            {
                Name = "Hotel#1"
            };

            Assert.IsTrue(hotel1.Zimmer.Count == 0);

            Zimmer zimmer1 = new Zimmer(hotel1)
            {
                Name = "Zimmer#1"
            };

            Assert.IsTrue(hotel1.Zimmer.Count == 1);
            Assert.IsTrue(zimmer1.Hotel == hotel1);

            Zimmer zimmer2 = hotel1.AddZimmer(hotel1);

            Assert.IsTrue(hotel1.Zimmer.Count == 2);
            Assert.IsTrue(hotel1.Zimmer[0] == zimmer1);
            Assert.IsTrue(hotel1.Zimmer[1] == zimmer2);
            Assert.IsTrue(zimmer1.Hotel == hotel1);
            Assert.IsTrue(zimmer2.Hotel == hotel1);
        }
Esempio n. 2
0
        public void AddOneZimmerToHotelThenRemoveItThenAddAnotherOne2()
        {
            Hotel hotel1 = new Hotel()
            {
                Name = "Hotel#1"
            };

            Assert.IsTrue(hotel1.Zimmer.Count == 0);

            Zimmer zimmer1 = new Zimmer(hotel1)
            {
                Name = "Zimmer#1"
            };

            Assert.IsTrue(hotel1.Zimmer.Count == 1);
            Assert.IsTrue(hotel1.Zimmer[0] == zimmer1);
            Assert.IsTrue(zimmer1.Hotel == hotel1);

            hotel1.RemoveZimmer(zimmer1);
            Assert.IsTrue(hotel1.Zimmer.Count == 0);
            Assert.IsNull(zimmer1.Hotel);

            Zimmer zimmer2 = new Zimmer(hotel1)
            {
                Name = "Zimmer#2"
            };

            Assert.IsTrue(hotel1.Zimmer.Count == 1);
            Assert.IsTrue(hotel1.Zimmer[0] == zimmer2);
            Assert.IsTrue(zimmer2.Hotel == hotel1);
        }
Esempio n. 3
0
        public void InitZimmerAloneShouldThrowException()
        {
            string zimmerName = "ZimmerName";
            Zimmer zimmer1    = new Zimmer(null)
            {
                Name = zimmerName
            };

            Assert.IsTrue(zimmer1.Name == zimmerName);
            Assert.IsNull(zimmer1.Hotel);
        }
        public void RemoveZimmer(Zimmer zimmer)
        {
            if (_zimmer.Contains(zimmer))
            {
                FieldInfo    field        = this.GetType().GetField("_zimmer", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
                Multiplicity multiplicity = field.GetCustomAttributes(typeof(Multiplicity), false).FirstOrDefault() as Multiplicity;

                if (CheckMultiplicity(multiplicity, _zimmer.Count - 1))
                {
                    _zimmer.Remove(zimmer);
                }
                else
                {
                    throw new UMLOutOfBoundsException((_zimmer.Count - 1) + " out of bounds: " + multiplicity.Value);
                }

                zimmer.NotifyChanges(this, zimmer, _zimmer, UMLNotficationType.DELETE, field.GetCustomAttributes(typeof(ConnectedWithRole), false).Select(x => x as ConnectedWithRole).ToList());
            }
        }
        //public void AddZimmer(Zimmer zimmer)
        //{
        //   FieldInfo field = this.GetType().GetField("_zimmer", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);

        //   HashSet<Zimmer> oldValue = new HashSet<Zimmer>(_zimmer);
        //   _zimmer.Add(zimmer);

        //   //bei 1-n Beziehung --> UMLNotficationType.SET
        //   zimmer.NotifyChanges(this, oldValue, _zimmer, UMLNotficationType.SET, field.GetCustomAttributes(typeof(ConnectedWithRole), false).Select(x => x as ConnectedWithRole).ToList());
        //}

        public Zimmer AddZimmer(Hotel hotel)
        {
            Zimmer ret = null;

            FieldInfo    field        = this.GetType().GetField("_zimmer", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
            Multiplicity multiplicity = field.GetCustomAttributes(typeof(Multiplicity), false).FirstOrDefault() as Multiplicity;

            if (CheckMultiplicity(multiplicity, _zimmer.Count + 1))
            {
                ret = new Zimmer(hotel);
                _zimmer.Add(ret);
            }
            else
            {
                throw new UMLOutOfBoundsException((_zimmer.Count + 1) + " out of bounds: " + multiplicity.Value);
            }

            return(ret);
        }
Esempio n. 6
0
        public void AddOneZimmerToHotelThenRemoveAWrongOne()
        {
            Hotel hotel1 = new Hotel()
            {
                Name = "Hotel#1"
            };

            Assert.IsTrue(hotel1.Zimmer.Count == 0);

            Hotel hotel2 = new Hotel()
            {
                Name = "Hotel#2"
            };

            Assert.IsTrue(hotel2.Zimmer.Count == 0);

            Zimmer zimmer1 = new Zimmer(hotel1)
            {
                Name = "Zimmer#1"
            };

            Assert.IsTrue(hotel1.Zimmer.Count == 1);
            Assert.IsTrue(hotel1.Zimmer[0] == zimmer1);
            Assert.IsTrue(zimmer1.Hotel == hotel1);

            Zimmer zimmer2 = new Zimmer(hotel2)
            {
                Name = "Zimmer#2"
            };

            Assert.IsTrue(hotel2.Zimmer.Count == 1);
            Assert.IsTrue(hotel2.Zimmer[0] == zimmer2);
            Assert.IsTrue(zimmer2.Hotel == hotel2);

            hotel1.RemoveZimmer(zimmer2);
            Assert.IsTrue(hotel1.Zimmer.Count == 1);
            Assert.IsTrue(hotel1.Zimmer[0] == zimmer1);
            Assert.IsTrue(zimmer1.Hotel == hotel1);
            Assert.IsTrue(hotel2.Zimmer.Count == 1);
            Assert.IsTrue(hotel2.Zimmer[0] == zimmer2);
            Assert.IsTrue(zimmer2.Hotel == hotel2);
        }