public void foo()
        {
            var meeting = new Meeting(2);

            var dataContractSerializer = new DataContractSerializer(typeof(Fooo));
            var stringBuilder = new StringBuilder();
            dataContractSerializer.WriteObject(new XmlTextWriter(new StringWriter(stringBuilder)), new Fooo{foo = "sdfsd"});

            Console.Out.WriteLine("stringBuilder = {0}", stringBuilder);
        }
        public void should_add_attendee()
        {
            // arrange
            var maximumNumberOfAttendies = 2;
            var meeting = new Meeting(maximumNumberOfAttendies);
            // act
            var attendee = meeting.CreateAndAddAttendee();

            // assert
            meeting.Attendies.Should().Contain(attendee);
        }
        public void shoud_not_throw_when_limit_not_exceeded()
        {
            //arrange
            var meeting = new Meeting(1);

            //act
            meeting.CreateAndAddAttendee("*****@*****.**");
            meeting.CreateAndAddAttendee("*****@*****.**");

            //assert
            Assert.That(meeting.Attendies.Count, Is.EqualTo(1));
        }
        public void should_notify_all_attendees_when_canceled()
        {
            // arrange
            var notifier = new MockNotifier();
            var meeting = new Meeting(2);
            var attendees = new []{"m1", "m2"}.Select(m => meeting.CreateAndAddAttendee(m)).ToList();
            attendees.ForEach(meeting.AddAttendee);

            // act
            meeting.Cancel(notifier);

            // assert
            Assert.That(notifier.CalledAttendees, Is.EqualTo(attendees));
        }
        public void should_prohitbit_to_add_attendie_when_maximum_allowed_is_zero()
        {
            // arrange / act
            var maximumNumberOfAttendies = 0;
            var meeting = new Meeting(maximumNumberOfAttendies);

            // assert
            Assert.Throws<NumberOfAttendiesExceeded>(() => meeting.CreateAndAddAttendee());
        }
        public void should_prohibit_adding_more_then_max_numer_of_attendies()
        {
            // arrange
            var maximumNumberOfAttendies = 2;
            var meeting = new Meeting(maximumNumberOfAttendies);

            // act
            meeting.CreateAndAddAttendee();
            meeting.CreateAndAddAttendee();

            // assert
            Assert.Throws<NumberOfAttendiesExceeded>(() => meeting.CreateAndAddAttendee());
        }
        public void should_not_register_the_same_atendee_twice()
        {
            //arrange
            var meeting = new Meeting(42);

            //act
            meeting.CreateAndAddAttendee("*****@*****.**");
            meeting.CreateAndAddAttendee("*****@*****.**");
            //assert
            Assert.That(meeting.Attendies.Count, Is.EqualTo(1));
        }
        public void should_not_allow_to_register_when_cancelled()
        {
            // arrange
            var notifier = new MockNotifier();
            var meeting = new Meeting(1);

            // act
            meeting.Cancel(notifier);

            // assert
            Assert.Throws<MeetingCanceledException>(() => meeting.AddAttendee(new Attendee("foo")));
        }