text: if (typeof module === 'object' && module.exports) {
    var expect = require('expect.js');
    var SwaggerPetstore = require('../../src/index');
  }
  
  var api;
  
  beforeEach(function() {
    api = new SwaggerPetstore.PetApi();
  });
  
  var createRandomPet = function() {
    var id = new Date().getTime();
    var pet = new SwaggerPetstore.Pet();
    pet.setId(id);
    pet.setName("gorilla" + id);
  
    var category = new SwaggerPetstore.Category();
    category.setName("really-happy");
    pet.setCategory(category);
  
    pet.setStatus('available');
    var photos = ["http://foo.bar.com/1", "http://foo.bar.com/2"];
    pet.setPhotoUrls(photos);
  
    return pet;
  };
  
  describe('PetApi', function() {
    it('should create and get pet', function(done) {
      var pet = createRandomPet();
      api.addPet(pet, function(error) {
        if (error) throw error;
  
        api.getPetById(pet.id, function(error, fetched, response) {
          if (error) throw error;
          expect(response.status).to.be(200);
          expect(response.ok).to.be(true);
          expect(response.get('Content-Type')).to.be('application/json');
  
          expect(fetched).to.be.ok();
          expect(fetched.id).to.be(pet.id);
          expect(fetched.getPhotoUrls()).to.eql(pet.getPhotoUrls());
          expect(fetched.getCategory()).to.be.ok();
          expect(fetched.getCategory().getName()).to.be(pet.getCategory().getName());
  
          api.deletePet(pet.id);
          done();
        });
      });
    });
  });
  
  /*
      @Test
      public void testUpdatePet() throws Exception {
          Pet pet = createRandomPet();
          pet.setName("programmer");
  
          api.updatePet(pet);
  
          Pet fetched = api.getPetById(pet.getId());
          assertNotNull(fetched);
          assertEquals(pet.getId(), fetched.getId());
          assertNotNull(fetched.getCategory());
          assertEquals(fetched.getCategory().getName(), pet.getCategory().getName());
      }
  
      @Test
      public void testFindPetsByStatus() throws Exception {
          Pet pet = createRandomPet();
          pet.setName("programmer");
          pet.setStatus(Pet.StatusEnum.AVAILABLE);
  
          api.updatePet(pet);
  
          List<Pet> pets = api.findPetsByStatus(Arrays.asList(new String[]{"available"}));
          assertNotNull(pets);
  
          boolean found = false;
          for (Pet fetched : pets) {
              if (fetched.getId().equals(pet.getId())) {
                  found = true;
                  break;
              }
          }
  
          assertTrue(found);
      }
  
      @Test
      public void testFindPetsByTags() throws Exception {
          Pet pet = createRandomPet();
          pet.setName("monster");
          pet.setStatus(Pet.StatusEnum.AVAILABLE);
  
          List<Tag> tags = new ArrayList<Tag>();
          Tag tag1 = new Tag();
          tag1.setName("friendly");
          tags.add(tag1);
          pet.setTags(tags);
  
          api.updatePet(pet);
  
          List<Pet> pets = api.findPetsByTags(Arrays.asList(new String[]{"friendly"}));
          assertNotNull(pets);
  
          boolean found = false;
          for (Pet fetched : pets) {
              if (fetched.getId().equals(pet.getId())) {
                  found = true;
                  break;
              }
          }
          assertTrue(found);
      }
  
      @Test
      public void testUpdatePetWithForm() throws Exception {
          Pet pet = createRandomPet();
          pet.setName("frank");
          api.addPet(pet);
  
          Pet fetched = api.getPetById(pet.getId());
  
          api.updatePetWithForm(String.valueOf(fetched.getId()), "furt", null);
          Pet updated = api.getPetById(fetched.getId());
  
          assertEquals(updated.getName(), "furt");
      }
  
      @Test
      public void testDeletePet() throws Exception {
          Pet pet = createRandomPet();
          api.addPet(pet);
  
          Pet fetched = api.getPetById(pet.getId());
          api.deletePet(fetched.getId(), null);
  
          try {
              fetched = api.getPetById(fetched.getId());
              fail("expected an error");
          } catch (ApiException e) {
              assertEquals(404, e.getCode());
          }
      }
  
      @Test
      public void testUploadFile() throws Exception {
          Pet pet = createRandomPet();
          api.addPet(pet);
  
          File file = new File("hello.txt");
          BufferedWriter writer = new BufferedWriter(new FileWriter(file));
          writer.write("Hello world!");
          writer.close();
  
          api.uploadFile(pet.getId(), "a test file", new File(file.getAbsolutePath()));
      }
  
      @Test
      public void testEqualsAndHashCode() {
          Pet pet1 = new Pet();
          Pet pet2 = new Pet();
          assertTrue(pet1.equals(pet2));
          assertTrue(pet2.equals(pet1));
          assertTrue(pet1.hashCode() == pet2.hashCode());
          assertTrue(pet1.equals(pet1));
          assertTrue(pet1.hashCode() == pet1.hashCode());
  
          pet2.setName("really-happy");
          pet2.setPhotoUrls(Arrays.asList(new String[]{"http://foo.bar.com/1", "http://foo.bar.com/2"}));
          assertFalse(pet1.equals(pet2));
          assertFalse(pet2.equals(pet1));
          assertFalse(pet1.hashCode() == (pet2.hashCode()));
          assertTrue(pet2.equals(pet2));
          assertTrue(pet2.hashCode() == pet2.hashCode());
  
          pet1.setName("really-happy");
          pet1.setPhotoUrls(Arrays.asList(new String[]{"http://foo.bar.com/1", "http://foo.bar.com/2"}));
          assertTrue(pet1.equals(pet2));
          assertTrue(pet2.equals(pet1));
          assertTrue(pet1.hashCode() == pet2.hashCode());
          assertTrue(pet1.equals(pet1));
          assertTrue(pet1.hashCode() == pet1.hashCode());
      }
  }
  */
  