       (is (= "Adonis Campaign" (get-in @state [:corp :servers :remote5 :content 0 :title])) "Adonis installed by Team Sponsorship")
       (is (nil? (:ts-active (refresh tsp1))) "Team Sponsorship 1 ability disabled")
       (is (nil? (:ts-active (refresh tsp2))) "Team Sponsorship 2 ability disabled"))))
+
+(deftest turtlebacks
+  "Turtlebacks - Gain 1 credit for every new server created"
+  (do-game
+    (new-game (default-corp [(qty "Turtlebacks" 1) (qty "PAD Campaign" 2) (qty "Wraparound" 1)])
+              (default-runner))
+    (core/gain state :corp :click 1)
+    (play-from-hand state :corp "Turtlebacks" "New remote")
+    (let [tb (get-in @state [:corp :servers :remote1 :content 0])]
+      (core/rez state :corp tb)
+      (play-from-hand state :corp "PAD Campaign" "New remote")
+      (is (= 4 (:credit (get-corp))) "Gained 1 credit for new server created")
+      (play-from-hand state :corp "Wraparound" "Server 1")
+      (is (= 4 (:credit (get-corp))) "No credit gained for install into existing server")
+      (play-from-hand state :corp "PAD Campaign" "New remote")
+      (is (= 5 (:credit (get-corp))) "Gained 1 credit for new server created"))))

      (is (= 1 (count (get-in @state [:runner :scored]))) "Chairman Hiro added to Runner score area")
      (is (= 2 (:agenda-point (get-runner))) "Runner gained 2 agenda points"))))

(deftest eve-campaign
  (do-game
    (new-game (default-corp [(qty "Eve Campaign" 1)]) (default-runner))

      (is (= (:zone (refresh publics2) :discard)))
      (is (= "Public Support" (:title (first (get-in @state [:corp :scored])))))
      (is (= 1 (:agendapoints (first (get-in @state [:corp :scored]))))))))

(deftest reversed-accounts
  "Reversed Accounts - Trash to make Runner lose 4 credits per advancement"
  (do-game
    (new-game (default-corp [(qty "Reversed Accounts" 1)])
              (default-runner))
    (play-from-hand state :corp "Reversed Accounts" "New remote")
    (let [rev (get-in @state [:corp :servers :remote1 :content 0])]
      (core/advance state :corp {:card (refresh rev)})
      (core/advance state :corp {:card (refresh rev)})
      (take-credits state :corp)
      (play-from-hand state :runner "Sure Gamble")
      (play-from-hand state :runner "Sure Gamble")
      (play-from-hand state :runner "Sure Gamble")
      (take-credits state :runner)
      (is (= 18 (:credit (get-runner))))
      (core/advance state :corp {:card (refresh rev)})
      (core/advance state :corp {:card (refresh rev)})
      (is (= 4 (:advance-counter (refresh rev))))
      (core/rez state :corp (refresh rev))
      (card-ability state :corp rev 0)
      (is (= 1 (count (:discard (get-corp)))) "Reversed Accounts trashed")
      (is (= 2 (:credit (get-runner))) "Runner lost 16 credits"))))

(deftest ronin
  "Ronin - Click-trash to do 3 net damage when it has 4 or more advancements"
  (do-game
    (new-game (default-corp [(qty "Ronin" 1) (qty "Mushin No Shin" 1)])
              (default-runner))
    (play-from-hand state :corp "Mushin No Shin")
    (prompt-select :corp (find-card "Ronin" (:hand (get-corp))))
    (let [ron (get-in @state [:corp :servers :remote1 :content 0])]
      (is (= 3 (:advance-counter (refresh ron))))
      (core/rez state :corp (refresh ron))
      (card-ability state :corp ron 0)
      (is (= 3 (count (:hand (get-runner)))) "Ronin ability didn't fire with only 3 advancements")
      (take-credits state :corp)
      (take-credits state :runner)
      (core/advance state :corp {:card (refresh ron)})
      (is (= 4 (:advance-counter (refresh ron))))
      (card-ability state :corp ron 0)
      (is (= 3 (count (:discard (get-runner)))) "Ronin did 3 net damage")
      (is (= 2 (count (:discard (get-corp)))) "Ronin trashed"))))

(deftest sundew
  "Sundew"
