#include "fiko/cekirdek/guncelleme.hpp" #include "fiko_test.hpp" using namespace fiko; FIKO_TEST(guncelleme_mevcut_karari_ve_olay) { Cekirdek c; GuncellemeServisi g; g.bagla(c); int mevcutOlay = 0; c.olaylar().abone([&](const GuncellemeMevcut&) { ++mevcutOlay; }); ManifestBilgi m; m.gecerli = true; m.surum = Surum{0, 9, 0}; // yerel 0.5.0'dan yeni m.degisiklikler = "hizlandi"; g.manifestDegerlendir(m); FIKO_KONTROL(g.durum() == GuncellemeServisi::Durum::Mevcut); FIKO_KONTROL(mevcutOlay == 1); // GuncellemeMevcut yayınlandı } FIKO_TEST(guncelleme_guncel_karari) { Cekirdek c; GuncellemeServisi g; g.bagla(c); ManifestBilgi m; m.gecerli = true; m.surum = yerelSurum(); // aynı sürüm → güncelleme yok g.manifestDegerlendir(m); FIKO_KONTROL(g.durum() == GuncellemeServisi::Durum::Guncel); } FIKO_TEST(guncelleme_gecersiz_manifest_hata) { GuncellemeServisi g; ManifestBilgi m; // gecerli = false g.manifestDegerlendir(m); FIKO_KONTROL(g.durum() == GuncellemeServisi::Durum::Hata); } FIKO_TEST(guncelleme_zorunlu_min_destekli) { GuncellemeServisi g; // yerel 0.5.0 < minDestekli 0.6.0 → zorunlu ManifestBilgi m; m.gecerli = true; m.surum = Surum{0, 9, 0}; m.minDestekli = Surum{0, 6, 0}; FIKO_KONTROL(g.zorunluMu(m)); // yerel 0.5.0 >= minDestekli 0.4.0, zorunlu bayrağı yok → zorunlu değil ManifestBilgi m2; m2.gecerli = true; m2.surum = Surum{0, 6, 0}; m2.minDestekli = Surum{0, 4, 0}; FIKO_KONTROL(!g.zorunluMu(m2)); }