public void ReceiveEmail()
        {
            // Arrange
            var container               = new Container();
            var repositoryFactoryMock   = new Mock <IRepositoryFactory>();
            var konfiguracijaRepository = new Mock <IKonfiguracijaRepository>();
            var pop3Mock                  = new Mock <IPop3Service>();
            var agencijeRepository        = new Mock <IAgencijeRepository>();
            var agencijskeVestiRepository = new Mock <IAgencijskeVestiRepository>();

            var konfiguracija = new Konfiguracija
            {
                DownloadInterval = 1, Server = "server", Port = 995, Ssl = true, Username = "******", Password = "******"
            };
            var agencija = new Agencija {
                ID = 1
            };

            repositoryFactoryMock.SetupGet(x => x.KonfiguracijaRepository).Returns(konfiguracijaRepository.Object);
            repositoryFactoryMock.SetupGet(x => x.AgencijeRepository).Returns(agencijeRepository.Object);
            repositoryFactoryMock.SetupGet(x => x.AgencijskeVestiRepository).Returns(agencijskeVestiRepository.Object);
            konfiguracijaRepository.Setup(x => x.VratiKonfiguraciju()).Returns(konfiguracija);
            pop3Mock.Setup(x => x.GetMessageCount()).Returns(1);
            var mail = new MailMessage
            {
                From    = new MailAddress("*****@*****.**"),
                Subject = "Test",
                Body    = "Test body"
            };

            pop3Mock.Setup(x => x.GetMessage(0)).Returns(mail);
            agencijeRepository.Setup(x => x.VratiAgencijuSaEmailom(It.Is <string>(s => s.Equals(mail.From.Address)))).Returns(agencija);



            container.Bind <IRepositoryFactory>(repositoryFactoryMock.Object);
            container.Bind <ISchedulerService, SchedulerService>();
            Container.Default.Bind <IPop3Service>(pop3Mock.Object);
            Container.Default.Bind <IRepositoryFactory>(repositoryFactoryMock.Object);

            // Act
            container.GetInstance <ISchedulerService>().Run();
            Thread.Sleep(2000);

            // Assert
            pop3Mock.Verify(x => x.Connect(konfiguracija.Server, konfiguracija.Port, konfiguracija.Ssl));
            pop3Mock.Verify(x => x.Authenticate(konfiguracija.Username, konfiguracija.Password));
            pop3Mock.Verify(x => x.GetMessage(0));
            agencijskeVestiRepository.Verify(x => x.Add(It.Is <AgencijskaVest>(a => a.AgencijaID == agencija.ID && a.Subject == mail.Subject && a.Body == mail.Body)));
            agencijskeVestiRepository.Verify(x => x.Save());
            pop3Mock.Verify(x => x.DeleteMessage(0));
        }
        //Konfiguracija i kreiranje instance
        private static ISessionFactory NapraviSesiju()
        {
            try
            {
                var cfg = MySQLConfiguration.Standard.ConnectionString(
                    c => c.Is(Konfiguracija.KonekcioniString));

                return(Fluently.Configure()
                       .Database(cfg.ShowSql)
                       .Mappings(m => m.FluentMappings.AddFromAssembly(Assembly.GetExecutingAssembly()))
                       //.ExposeConfiguration(BuildSchema)
                       .BuildSessionFactory());
            }
            catch (Exception ec)
            {
                Konfiguracija.StampajIzuzetak(ec);
                return(null);
            }
        }
Beispiel #3
0
        public static void PosaljiObavijestNaMail(Korisnik korisnik, string opis, string naslov)
        {
            MailMessage mail = new MailMessage();

            mail.From = new MailAddress(Sesija.PrijavljenKorisnik.email, Konfiguracija.DajPostavku("mail.naslov"), Encoding.UTF8);
            mail.To.Add(new MailAddress(korisnik.email, korisnik.ime_korisnika + " " + korisnik.prezime_korisnika, Encoding.UTF8));
            mail.Subject         = naslov;
            mail.SubjectEncoding = Encoding.UTF8;
            mail.IsBodyHtml      = true;
            mail.Body            = opis;
            mail.BodyEncoding    = Encoding.UTF8;
            SmtpClient client = new SmtpClient();

            client.EnableSsl             = true;
            client.UseDefaultCredentials = false;
            client.Credentials           = new System.Net.NetworkCredential(Konfiguracija.DajPostavku("korisnik.email"), Konfiguracija.DajPostavku("korisnik.lozinka"));
            client.Host           = Konfiguracija.DajPostavku("mail.smtp");
            client.Port           = int.Parse(Konfiguracija.DajPostavku("mail.port"));
            client.DeliveryMethod = SmtpDeliveryMethod.Network;
            client.Send(mail);
        }